用此法好, 不用select方法(会导致丢光标位置)
With ThisWorkbook.Worksheets("检查信息")
ActiveSheet.Unprotect
AutoFilterMode = False '自动筛选
Rows(1).AutoFilter
Cells.Locked = False '序列号锁定
Set rg = .Range("A1:A" & iNum + 100)
For Each cell In rg
cell.Locked = True
Next
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowInsertingRows:=True, AllowFiltering:=True
在修改锁定的单元格前,要先把保护去掉.
With ThisWorkbook.Worksheets("检查信息")
ActiveSheet.Unprotect
改完单元格内容以后,
先设定Cells.Locked=False
再用select选中要锁定的范围,可以是Range, Columns, Rows
然后设定Selection.Locked=True
Cells.Locked = False
Columns("A:A").Select
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowInsertingRows:=True, AllowFiltering:=True
在Excel VBA中,为了防止编辑特定单元格,可以使用代码将工作表解锁,设置所有单元格为可编辑,然后遍历指定范围(如A1到iNum+100)并将这些单元格锁定。在修改后,解除所有单元格的锁定,选择要再次锁定的列(例如A列),并设定其Locked属性为True。最后,保护工作表允许插入行和过滤,但不允许其他修改。
436

被折叠的 条评论
为什么被折叠?



