VBA保护的单元格,但仍允许编辑

时间:2019-07-15 23:03:52

标签: excel vba

我有一个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范围内的单元格时,我不应该对其进行编辑。但是,我可以编辑它们。那我该如何解决呢?

1 个答案:

答案 0 :(得分:1)

如果未锁定单元格,则保护图纸不会阻止编辑。

Me.Range(ProtectRange).Locked = True

应该解决问题。