我发现 Siddharth Rout 的用于添加新工作表和代码的出色代码,但我的需要有点不同。
我想将激活代码添加到现有工作表。我尝试用该工作表名称代替使用该.Name
属性,删除
Set ws = Worksheets.Add
并替换ws.Name
为我现有的工作表名称“工作”。它在那个时候爆炸。
使用现有示例中的代码检查 ws 对象显示 ws 对象的属性 Name 是一个简单的字符串,因此无法使用我现有的工作表的名称代替让我感到困惑。
为什么:
现有工作表“工作”最初是在没有激活代码的情况下创建的。它在这个多页多功能系统中的许多步骤中被大量使用,如果用户手动选择它,我想防止用户更改它 - 有理由让他在暂停交互期间查看它,做出决定 - - 但当我的 VBA 往返于它之间时,让它不受保护。
所以,我想插入保护工作表的激活代码——取消保护的停用代码可以是工作表的永久部分,不会造成伤害——因此,只要用户决定手动查看工作表,就可以保护工作表,每当我的 VBA 允许用户交互时,然后在用户离开工作表并返回交互时通过其 Deactivate 删除/更改该代码,因此它通常可以免费供我的代码使用,否则每次我的代码切换到它时都不会添加保护.
我将创建并永久保留 Unprotect deactivate 代码 - 不会造成伤害 - 所以它不会改变自己(这是一个可怕的禁忌)。如何?
对不起所有的话。我在 VBA 中用谷歌搜索“自我修改代码”的时间没有找到好的答案。