Excel VBA锁定单元格中包含特定值的列
我需要锁定列标题中包含特定值的所有列。我试过下列方法,但没有成功。我意识到在锁定列之后,我必须锁定工作表。选择列时出错 谢谢你的帮助Excel VBA锁定单元格中包含特定值的列,excel,vba,locking,Excel,Vba,Locking,我需要锁定列标题中包含特定值的所有列。我试过下列方法,但没有成功。我意识到在锁定列之后,我必须锁定工作表。选择列时出错 谢谢你的帮助 Sub MultipleFindLike() For Each cell In Worksheets("LockTest").Range("A1", Range("A1").End(xlToRight)) If cell Like "COM_*" Then Debug.Print "Cell value = " & cell
Sub MultipleFindLike()
For Each cell In Worksheets("LockTest").Range("A1", Range("A1").End(xlToRight))
If cell Like "COM_*" Then
Debug.Print "Cell value = " & cell
Debug.Print "Cell Column = " & cell.Column
Range(cell, Range(cell).End(xlDown)).Select
End If
Next
Worksheets("LockTest").Protect Password:="mypass"
Debug.Print "Done ..."
End Sub
我的问题是工作表已经被锁定,单元格锁定语句无法工作。下面是工作原理。然而,我欢迎更优雅的解决方案
Sub LockSelectedCells(sheetName As String)
Dim cell As Range
Dim sheetProtectPassword As String
sheetProtectPassword = Range("Reports!sheetProtectPassword")
' Debug.Print "sheetProtectPassword=" & sheetProtectPassword
Worksheets(sheetName).Unprotect Password:=sheetProtectPassword
For Each cell In Worksheets(sheetName).Range("A1", Range("A1").End(xlToRight))
If cell.Value Like "COM_*" Then
' Debug.Print "Cell value = " & cell
' Debug.Print "Cell Column = " & cell.Column
' Debug.Print "A" & cell.Column
cell.EntireColumn.Locked = False
End If
Next
Worksheets(sheetName).Protect Password:=sheetProtectPassword
Debug.Print "Done ..."
End Sub
你不会对你所做的选择做任何事情。此外,使用select也是不明智的。最好使用细胞的显式地址并用它来锁定它们。例如Range(“A:A”)。Locked=true