我正在为Excel工作表编写一些VBA脚本,并且我创建了一个模块,其中包含大多数字符串的完整列表,这些字符串存储了每个数据库字段的名称。这样,如果有人修改数据库,他们可以更新模块中的VBA变量,然后我所有的脚本(直接引用全局变量而不是字段名称)甚至都不知道它们之间的区别。
无论如何,我将在一些不同的无关excel表中工作,我希望他们都可以访问该模块。最糟糕的情况是,我可以手动将模块复制到每个工作簿,但是如果他们可以在外部引用相同的文件,那就太棒了......在VBA / Excel中可以这样吗?
此外,现在我的变量看起来像:
Global tblDeviceType As String
然后我在工作簿打开时调用的模块中的函数中初始化它们。有没有更好的方法来维护我的所有常量或这是否有效?
哦是的,我实际上并没有将它们声明为常量,因为它们中的一些具有更复杂的数据类型(如Ranges)并且无法静态声明 - 至少它看起来不像它们。
答案 0 :(得分:2)
或者,您可以创建一个文本文件(Microsoft Scripting Runtime库 - > class Scripting.TextStream),您可以在其中保存变量&当你想要阅读它们时加载它们。
将文本文件放在所有工作表均可访问的中心位置 对于范围,您可以将范围的地址存储在文本文件中。
如果我遗失任何东西,请告诉我。
答案 1 :(得分:2)
有几种方法可以做到这一点:
答案 2 :(得分:0)
您可以制作包含所有名称的Excel电子表格,然后使用与全局同名的命名范围,更改代码以使用命名范围,并使工作表成为插件。
我只是将模块复制到其他电子表格中。
修改:您也可以创建一个包含模块的空白电子表格,然后将其作为插件。我不知道Excel中的Globals是否会以这种方式工作,但值得一试。如果你这样做,请回到这里,它是否有效。
答案 3 :(得分:0)
实际上最简单的方法是将模块添加到.XLA excel插件文件中。 然后通过Excel Addins对话框添加此文件。
该模块现在可以在该用户帐户下运行的所有excel解决方案全局使用。