我在Excel中创建了一个VBA项目,并且在所述项目中是一个将代码写入另一个模块的模块。我最终密码保护了项目,以便隐藏代码(不会马上意识到这会造成一些非常明显的问题)。将VBA过程/函数写入.xlam插件
当用户与文件交互时,模块会尝试运行代码,但遇到错误(密码保护的项目无法自行修改!嘿,我们都有我们的时刻: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
虽然我发现对堆栈的一些信息和其他有关例如.xlam插件(Updating an xlam add-in using VBA),我宁愿只是不停地尽可能简单。建议和提示非常感谢。谢谢!
当使用上述如你所说,我得到一个运行时错误“9”,下标超出范围。根据excel,外挂程序已安装,我还使用了一个独特的外挂程序名称,并带有.xlam扩展名,没有运气:/ – Singularity20XX