vba - 有没有办法在 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
这是因为宏没有添加到工作簿中,正如我上面所说,我想运行宏而不必将它添加到我运行它的每个工作簿中。或者,如果有一种方法可以编写添加宏然后运行它的脚本,那也可以。
解决方案
您不能单独运行 .bas 文件,它不是宏或任何可执行文件。这只是文字。
您需要将其导入工作簿,或者(可能是更好的解决方案)将其导入 XLAM 加载项,并使用 Excel 实例加载该加载项。您需要修改 .bas 代码(可能只有轻微的更改)才能做到这一点。
或者,使用 VBIDE 库,您可以在运行时以编程方式将 .bas 添加到工作簿。不过,我可能会尽量避免这种情况。
您不需要将宏重构为 VBS,也不需要使用 VB.Net。只要您可以在任何Excel 文件中获取 .bas - 即使您手动将其放入加载项,您也应该能够运行它。
推荐阅读
- html - CSS中的图片周围没有绘制边框
- c++ - 在 C++ 中除以 2 个浮点数会产生不同的结果,具体取决于使用的方法
- css - 用于创建动画渐变按钮背景的 CSS
- sql - pl pgsql move with variable value
- react-native - 无法解析 react-native-image-picker 中的符号 PermissionListener
- javascript - 未捕获的错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义
- python - 在 python 中将相同的任务放入线程(进程?)
- haskell - 为 n 个不同版本构建 haskell 包
- git - 如何使用 gitolite 和 TortoiseGit
- php - 在同一控制器laravel 5.6中的方法之间传递变量数据