作者:绿色风
分类:
时间:2022-08-17
浏览:176
楼主 い卋玑┾宝珼 |
Q:如何快速清空未锁定单元格呢
A:方法1: 判断已用区域中,单元格是否lock,如果是lock,则清空单元格内容- Sub test1()
- Dim x As Range, sht As Worksheet
- For Each sht In Worksheets
- For Each x In sht.UsedRange
- If x.Locked = False Then x.ClearContents '如果不是锁定的,则清空内容
- Next
- Next
- End Sub
方法2: 通过find查找符合条件的单元格,清空其内容,继续查找,直到找到的单元格为起始位置结果
但是这种方式基本上都报错,在示例文件中,test2为对应的代码,但是一直报错。
问过K版,说是因为和excel的文件格式有关。具体的话,有兴趣研究的朋友可以继续研究一下。
这里仅提供一种思路 手动操作的话,可以查找这非锁定格式的内容,然后全选这些内容,清空即可
方法3: SearchFormat替换,通过格式检索,批量清空内容- Sub test3()
- Dim sht As Worksheet
- Application.ScreenUpdating = False '关闭屏幕更新
- Application.EnableEvents = False '禁用事件
- Application.Calculation = xlCalculationManual '对工作簿进行计算
- With Application.FindFormat '设置查找格式为不锁定单元格
- .Clear
- .Locked = False
- End With
- For Each sht In ThisWorkbook.Worksheets '查找格式,并清空内容
- sht.UsedRange.Replace "", "", SearchFormat:=True, ReplaceFormat:=False
- Next
- Application.Calculation = xlCalculationAutomatic '设置自动计算
- Application.EnableEvents = True '启用事件
- Application.ScreenUpdating = True '打开屏幕更新
- End Sub
示例中随意地做了一些数据,来演示效果 在此种情况下,由于方法1是对单个单元格枚举处理,所以比方法3的批量处理,要慢一些。
清空未锁定单元格的内容.zip |
2楼 成就滋味 |
学习了,感谢!~ |
3楼 纵鹤擒龙水中月 |
学习了, |
4楼 老糊涂 |
学习了,感谢! |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一