我在 Excel 中创建了一个 VBA 项目,并且在所述项目中是一个将代码写入另一个模块的模块。我最终对项目进行了密码保护,以隐藏代码(没有立即意识到这会带来一些非常明显的问题)。
当用户与文件交互时,模块尝试运行代码,但遇到错误(受密码保护的项目无法自行修改!嘿,我们都有自己的时刻:p)。
所以,作为解决这个问题的一种方法,我想“为什么不让编辑的部分不受保护”,同时保持文件的其余部分锁定。所以我想我会创建一个不受保护的 .xlam 插件,然后将所述代码写入这部分。但是,我很难弄清楚如何做到这一点。下面是我编写的将代码写入另一个模块的代码:
Public Sub errorWrite()
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Dim s As String
Dim d As String
Dim lineNumb As Long
With ThisWorkbook.VBProject.VBComponents.item("NewModule")
.CodeModule.InsertLines j, "Public sub newModule()"
j = j + 1
With ThisWorkbook.VBProject.VBComponents.item("NewModule")
.CodeModule.InsertLines j, "(my code etc..)"
j = j + 1
With ThisWorkbook.VBProject.VBComponents.item("NewModule")
.CodeModule.InsertLines j, "end sub"
end sub
例如,虽然我在 Stack 和其他地方找到了一些关于 .xlam 插件(使用 VBA 更新 xlam插件)的信息,但我宁愿让它尽可能简单。非常感谢您的建议和提示。谢谢!