Workbook_Open() 不适用于工作簿保护
Workbook_Open() does not work with Workbook Protection
我正在使用 Excel 2016 并将此代码写入 VBA 中的 ThisWorkbook 对象:
Private Sub Workbook_Open()
ThisWorkbook.Protect (password = "password")
End Sub
它不起作用。这里的要点是,这应该可以防止用户接触本工作簿中的 Power Query 函数。我已将其保存为启用宏的工作簿,我启用了所有宏和事件,这是唯一打开的工作簿。
我还有这个额外的代码:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Protect (password = "password")
ThisWorkbook.Save
End Sub
这也不起作用。如果我将那个“ThisWorkbook.Protect”代码插入一个通用模块或工作表对象并手动 运行 它工作正常,但是当我想要这个特定的 excel 文件到 运行 这个打开或关闭时自动编码,它不会这样做。
知道是什么原因造成的吗?
出于某种原因 运行 ThisWorkbook.Protect
在受保护的工作簿上似乎取消了保护(即使我找不到任何说明它这样做的文档)所以试试这个:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not ThisWorkbook.ProtectStructure Then ThisWorkbook.Protect Password:="password"
ThisWorkbook.Save
End Sub
我正在使用 Excel 2016 并将此代码写入 VBA 中的 ThisWorkbook 对象:
Private Sub Workbook_Open()
ThisWorkbook.Protect (password = "password")
End Sub
它不起作用。这里的要点是,这应该可以防止用户接触本工作簿中的 Power Query 函数。我已将其保存为启用宏的工作簿,我启用了所有宏和事件,这是唯一打开的工作簿。
我还有这个额外的代码:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Protect (password = "password")
ThisWorkbook.Save
End Sub
这也不起作用。如果我将那个“ThisWorkbook.Protect”代码插入一个通用模块或工作表对象并手动 运行 它工作正常,但是当我想要这个特定的 excel 文件到 运行 这个打开或关闭时自动编码,它不会这样做。
知道是什么原因造成的吗?
出于某种原因 运行 ThisWorkbook.Protect
在受保护的工作簿上似乎取消了保护(即使我找不到任何说明它这样做的文档)所以试试这个:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not ThisWorkbook.ProtectStructure Then ThisWorkbook.Protect Password:="password"
ThisWorkbook.Save
End Sub