excel表格如何添加一个按钮,点击一下自动清除没有锁定的单元格的数据

因为单元格里有很多公式,所以我把有公式的和不需要改动的单元格全部都锁定了,只留下平时需要填写数据的单元格没有锁定,然后设置了工作表保护,使锁定的单元格无法被修改,但是因为... 因为单元格里有很多公式,所以我把有公式的和不需要改动的单元格全部都锁定了,只留下平时需要填写数据的单元格没有锁定,然后设置了工作表保护,使锁定的单元格无法被修改,但是因为要填写数据的单元格很散,一个一个的清除很麻烦,如何设置一个按钮一键自动清除所有 可以填写数据的地方的单元格的数据?
我只知道这个方法
Sub 清除年末()
Range("D16,D18:D19,D28:D29,D32,D34,H7,H15,H19,H21").ClearContents
End Sub
有没有简单的 直接判断是否是锁定的单元格,未锁定的话就直接清除呢?
展开
 我来答
cfzzj007
2015-05-17 · TA获得超过5365个赞
知道大有可为答主
回答量:7931
采纳率:78%
帮助的人:1569万
展开全部
Public Sub 清除未锁定数据()

Dim PDsj As Range

For Each PDsj In ActiveSheet.UsedRange

    If PDsj.Locked = False Then

        PDsj.ClearContents

    End If

Next PDsj

End Sub
追问
成功了  谢谢大神,还想问下,如果我想再进一步,把这个按钮,放在其中一个sheet里面,我想清除所有sheet(比如我这个表格有6个工作表sheet1--sheet6)里未锁定的数据要怎么做呀?还有,怎么把屏幕刷新关闭?因为点击按钮之后显示一个一个的删除,感觉太慢了
追答
Public Sub 清除工作簿未锁定数据() '用于整个工作簿

Dim PDsj As Range

Dim Sh As Worksheet

Application.ScreenUpdating = False

For Each Sh In Worksheets

    For Each PDsj In Sh.UsedRange

        If PDsj.Locked = False Then

            PDsj.ClearContents

        End If

    Next PDsj

Next Sh

Application.ScreenUpdating = True

End Sub

 速度的快慢不完全取决于屏幕刷新,和你表格使用区域的大小有关系,毕竟是一个一个单元判断的,其实你写的确定的单元格才是最快的。

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式