我有一个python脚本,可以编辑特定列的内容,而VBA可以检查该列是否已更改。当检测到更改时,它将锁定该列,以防止用户进行编辑。它可以成功保护工作表,但仍可以编辑单元格。我不明白为什么会这样。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Protect As String
Dim NotProtectRange As String
ProtectRange = "A1:A1049576"
NotProtectRange = "B1:XFD1048576"
If Not Intersect(Target, Target.Worksheet.Range(ProtectRange)) Is Nothing Then
Worksheets("Sheet1").Unprotect
Range(NotProtectRange).Locked = False
Worksheets("Sheet1").Protect UserInterfaceOnly:=True, Contents:=True
End If
End Sub
我希望当我双击ProtectRange
范围内的单元格时,我不应该对其进行编辑。但是,我可以编辑它们。那我该如何解决呢?
答案 0 :(得分:1)
如果未锁定单元格,则保护图纸不会阻止编辑。
Me.Range(ProtectRange).Locked = True
应该解决问题。