【发布时间】:2017-10-18 07:51:19
【问题描述】:
我正在使用 Excel 2010,并且我有一个包含必须保护的工作表的工作簿,但我仍然想从 VBA 宏中更改锁定的单元格。我发现这很容易通过运行来实现
myWorksheet.Protect UserInterfaceOnly:=True
但是,如果用户在同一个 Excel 应用程序中打开另一个工作簿,他们可能会意外运行另一个宏,这可能会弄乱我的工作表。
是否有像 UserInterfaceOnly 这样的选项来保护其他工作簿的宏?
否则仅暂时使用UserInterfaceOnly 并在我的任何宏的末尾再次完全保护是否安全,或者由于并发性这会很危险?
【问题讨论】:
-
好问题。如果在受保护的工作簿之后打开另一个工作簿,则它将成为活动工作簿。如果第一个受保护的工作簿以某种方式再次变为活动状态,那么是的,第二个工作簿的代码可能会使用 VBA 代码更改受保护的工作簿。我能想到的唯一另一种方法是使用正常保护并在需要进行更改时简单地取消保护每个工作表并在之后立即保护它。您可以使用 Sheet1.Unprotect Password:="Special" 来增强安全性 - 输入您的代码 - Sheet1.Protect Password:="Special"