Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 打开工作簿时保护工作表_Vba_Excel - Fatal编程技术网

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
。。。愚弄我!