Vba 打开工作簿时保护工作表
我有一个宏,它必须在运行某些代码之后或之前保护/取消保护工作表。最奇怪的是,有时它会保护工作表,但当我想在打开工作簿或激活工作表时保护它时,它却没有 保护的代码如下所示:Vba 打开工作簿时保护工作表,vba,excel,Vba,Excel,我有一个宏,它必须在运行某些代码之后或之前保护/取消保护工作表。最奇怪的是,有时它会保护工作表,但当我想在打开工作簿或激活工作表时保护它时,它却没有 保护的代码如下所示: Sub Protect() On Error Resume Next Dim lastRow As Integer lastRow = ThisWorkbook.Sheets("Risk Log").Range("lastRow").row ThisWorkbook.Sheets("Risk Log")
Sub Protect()
On Error Resume Next
Dim lastRow As Integer
lastRow = ThisWorkbook.Sheets("Risk Log").Range("lastRow").row
ThisWorkbook.Sheets("Risk Log").Range("A3:D" & lastRow).Locked = True
ThisWorkbook.Sheets("Risk Log").Range("E3:AH" & lastRow).Locked = False
ThisWorkbook.Sheets("Risk Log").Protect _
Password:="MajorEvents", _
AllowFormattingCells:=True, _
AllowFiltering:=True, _
AllowFormattingRows:=True, _
AllorFormattingColumns:=True, _
UserInterfaceOnly:=True
End Sub
我从许多过程中调用它,例如从Workbook\u Open()
事件调用它,如下所示:
Private Sub Workbook_Open()
Application.OnKey "^v", "NotPaste"
Call Module3.Protect
End Sub
我真的很困惑这个问题,因为我不明白为什么它在某些情况下有效,为什么不。
救命啊 您是否尝试过在没有错误恢复下一行的情况下运行代码?如果程序导致错误,您将不会收到通知,因为它将继续进行。非常感谢!!!!!错误的原因是我将
AllorFormattingColumns
而不是AllowFormattingColumns
。。。愚弄我!