我做错了什么? 我收到错误“无法将范围属性设置为“锁定”
For i = 1 To ActiveWorkbook.Worksheets.Count
For j = 1 To 2000
For k = 1 To 500
If ActiveWorkbook.Worksheets(i).Cells(j, k).Interior.color = color Then
ActiveWorkbook.Worksheets(i).Range(ActiveWorkbook.Worksheets(i).Cells(j, k),
ActiveWorkbook.Worksheets(i).Cells(j, k)).Locked = False
Next k
Next j
Next i
我是否缺少范围和单元格之间的一些链接?
修改您的代码以正确处理锁定的单元格:
For i = 1 To ActiveWorkbook.Worksheets.Count
ActiveWorkbook.Worksheets(i).Unprotect ' Unprotect the worksheet
For j = 1 To 2000
For k = 1 To 500
If ActiveWorkbook.Worksheets(i).Cells(j, k).Interior.Color = color Then
ActiveWorkbook.Worksheets(i).Cells(j, k).Locked = False
End If
Next k
Next j
ActiveWorkbook.Worksheets(i).Protect ' Protect the worksheet again
Next i
在此修改后的代码中,我在更改单元格属性之前添加了“取消保护”,并在更改后添加了“保护”。这确保您可以修改单元格的“锁定”属性而不会遇到错误。
只需将代码中的“颜色”替换为用于比较单元格内部颜色的实际值。另外,请记住,如果工作表受密码保护,则保护和取消保护工作表可能需要密码。