【发布时间】:2011-08-13 13:38:19
【问题描述】:
我有一个工作簿,它创建了第二个工作簿(使用ThisWorkbook.SaveCopyAs)来很好地向用户展示数据。它依赖宏进行部分处理。
但是,我被要求让用户无法访问这些宏。他们仍然需要运行它们,但要查看/编辑它们应该需要密码。我可以弄清楚如何使用 GUI(VBA 编辑器 -> 右键单击 VBAProject -> VBAProject 属性 -> 保护,勾选框并输入密码),但我还没有找到使用 VBA 的方法。 Workbook.Protect 函数似乎锁定了所有除了 VBA。
如果我尝试将它应用到源工作簿,我会收到“由于项目受到保护而无法执行操作”,所以这也不起作用。
我正在运行 2010,但工作簿需要与 2003 兼容,所以没有花哨的新技巧。 :(
【问题讨论】:
-
如果我的回答没有帮助,搜索
VBA Project Properties via VBA似乎会产生一些结果。 -
我无法复制这个。如果我创建一个带有受密码保护的 VBA 模块的工作簿,请在其上放置一个执行 ThisWorkbook.SaveCopyAs 的按钮,然后点击它...它会保存一个带有受保护的 VBA 项目的工作簿。您真的是指ThisWorkbook,还是指ActiveWorkbook?而且,如果是后者,你怎么把宏放在那里?
标签: excel excel-2003 vba