首页 > 解决方案 > 有没有办法在 VBScript 中运行 excel VBA 模块

问题描述

我有一个工作模块,它执行一些数据转换,我想通过运行 vbscript 在任何 Excel 表上运行它。

它应该像这样工作:

1)运行vbscript,2)选择excel文件,3)数据转换为另一张表,4)保存并退出。

除了最重要的步骤第 3 步之外,我的一切都在工作。但是代码在那里,它是一个工作模块,但我必须导入它并从工作簿中为每个进入的工作簿运行它。我不想这样做,这个项目太麻烦了。

有没有比重新编程每个模块以在 VBScript 中工作更简单的方法?如果我必须在 VBScript 中重新设计解决方案,是否有任何好的 excel VBScript 教程?我做了一些研究,但找不到任何我需要的深度。

编辑:

此解决方案不是我的问题的解决方案。这假设模块已经导入到 Excel 工作表中。如果我使用它,我会收到错误消息:

Cannot run the macro 'filename.Module1.macro' The macro may not be available in this workbook or all macros may be disabled

这是因为宏没有添加到工作簿中,正如我上面所说,我想运行宏而不必将它添加到我运行它的每个工作簿中。或者,如果有一种方法可以编写添加宏然后运行它的脚本,那也可以。

标签: vbaexcelvbscript

解决方案


您不能单独运行 .bas 文件,它不是宏或任何可执行文件。这只是文字。

您需要将其导入工作簿,或者(可能是更好的解决方案)将其导入 XLAM 加载项,并使用 Excel 实例加载该加载项。您需要修改 .bas 代码(可能只有轻微的更改)才能做到这一点。

或者,使用 VBIDE 库,您可以在运行时以编程方式将 .bas 添加到工作簿。不过,我可能会尽量避免这种情况。

您不需要将宏重构为 VBS,也不需要使用 VB.Net。只要您可以在任何Excel 文件中获取 .bas - 即使您手动将其放入加载项,您也应该能够运行它。

使用命令行中的 VBScript 从 Excel 外部运行 Excel 宏


推荐阅读