Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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
活页不';t取消对Excel VBA的保护_Vba_Excel - Fatal编程技术网

活页不';t取消对Excel VBA的保护

活页不';t取消对Excel VBA的保护,vba,excel,Vba,Excel,出于某种原因,当我运行下面的代码时,我得到一个错误,表示我试图更改的工作表未受保护。如果我使用Excel保存选项保存,它可以正常工作;如果我在工作表上运行宏,我会得到一个错误,表明工作表受到保护。为什么代码无法识别取消保护板材的零件 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim sSheetName As String Dim logSheet As Worksheet Di

出于某种原因,当我运行下面的代码时,我得到一个错误,表示我试图更改的工作表未受保护。如果我使用Excel保存选项保存,它可以正常工作;如果我在工作表上运行宏,我会得到一个错误,表明工作表受到保护。为什么代码无法识别取消保护板材的零件

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)


Dim sSheetName As String
Dim logSheet As Worksheet
Dim logRow As Range
Set logSheet = Sheets("LogDetails")
sSheetName = "1107"

    Sheets("LogDetails").Unprotect
    Application.EnableEvents = False
    Sheets("LogDetails").Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = "Narrative Box"  *****Error at this line**
    Sheets("LogDetails").Range("A" & Rows.Count).End(xlUp).Offset(0, 1).Value = Sheets("1107").Shapes("TextBox 1").TextFrame.Characters.Text
    Sheets("LogDetails").Range("A" & Rows.Count).End(xlUp).Offset(0, 2).Value = Environ("username")
    Sheets("LogDetails").Range("A" & Rows.Count).End(xlUp).Offset(0, 3).Value = Now

 Sheets("LogDetails").Columns("A:D").AutoFit
 Application.EnableEvents = True




End Sub

我可以通过添加以下内容来纠正上述问题:

Worksheets.protect, UserInterFaceOnly:=True 

当代码打开时。

文件扩展名是xlsb还是xlsm?如果不是的话,它可能是故意被封锁的。大多数现代excel文件格式都会阻止vba代码运行。把它扔出去就是.xlsm。我将要添加一个编辑。当工作簿打开时,我添加了一个UserInterfaceOnly:=True,但现在当文档试图另存为…xlsm时,我遇到了一个错误