【发布时间】:2019-06-26 07:59:54
【问题描述】:
我不想将 VBA 代码保存在 Excel 文件内的模块中,而是希望将代码保存在文本文件中,例如 module1.vba。在 Excel 中,module1.vba 将被加载或导入并像普通模块一样运行。
这可能吗?该怎么做?
在 Excel 中,在 VBA 编辑器中,菜单中有 Insert > File... 选项可以满足我的需求,但我不知道如何使用最少的 VBA 代码自动加载保存的真实代码作为文本。
这样做的原因是允许使用基于文本的应用程序(如 git)进行代码修订控制。
--- 编辑---
这个answer 展示了一个很好的替代工作。但是,我仍然不太喜欢复制东西。
【问题讨论】:
-
@Pᴇʜ 这并没有提供通过 VBA 实现的方法。
-
或者使用已经存在的工具之一。不要重新发明*:只是一个例子(你可以在谷歌上找到更多):xltools.net/version-control-for-vba-macros
-
@ErikA 是的,但是由于 “这样做的原因是允许代码修订控制” 在 git it 下,没有必要使用 VBA 来执行此操作。见What is the x/y problem。有时人们只是要求 X,因为他们没有意识到他们的实际问题是 Y。
-
如果您想从文本文件运行 VBA 代码,那么您可以这样做。 [1] 在运行时,创建文本文件的副本[2] 将文件重命名为
.vbs[3] 执行.vbs文件 [4] 删除副本。 [注意] 我建议稍微修改代码以使其与vbscript兼容。和 vba 差不多 :)