【发布时间】:2023-03-29 09:55:01
【问题描述】:
我有一个工作模块,它执行一些数据转换,我想通过运行 vbscript 在任何 Excel 工作表上运行它。
它应该像这样工作:
1) 运行vbscript, 2) 选择excel文件, 3) 数据转换成另一张表, 4) 保存退出。
除了最重要的步骤,第 3 步之外,我的一切都在工作。但是代码在那里,它是一个工作模块,但我必须导入它并从工作簿中为每个进来的工作簿运行它。我不想这样做,对于这个项目来说太麻烦了。
有没有比重新编程每个模块以在 VBScript 中工作更简单的方法?如果我必须在 VBScript 中重新设计解决方案,是否有任何好的 excel VBScript 教程?我进行了一些研究,但找不到任何我需要的深度。
编辑:
This Solution 不能解决我的问题。这假设模块已经导入到 Excel 工作表中。如果我使用它,我会收到错误:
Cannot run the macro 'filename.Module1.macro' The macro may not be available in this workbook or all macros may be disabled
这是因为宏没有添加到工作簿中,正如我上面所说的,我想运行宏,而不必将它添加到我运行它的每个工作簿中。或者,如果有一种方法可以编写添加宏然后运行它的脚本,那也可以。
【问题讨论】:
-
你为什么使用VBScript?我会推荐 VB.NET 来自动化 Excel。像这样:msdn.microsoft.com/en-us/library/office/…
-
第 3 步听起来比您想象的要复杂。如果代码不存在于工作簿中,而是其他一些工作簿或作为 .bas 文件等,那么您需要导入它,这需要一些您无法以编程方式进行的权限设置。但是,上面的其他链接回答了直接的问题:是否可能。是的。如果宏存在并且可以访问,那么只要您拥有 Excel 应用程序实例的句柄,就可以运行它。
-
是的,如果宏没有添加到工作簿中,那么它在哪里?
-
@DavidZemens 这就是我要问的;如果完全可以运行宏而不将其添加到工作簿中。这并不复杂,只是很多工作,因为我使用的这些宏很大。那么看来我将不得不在 VBScript 中重新设计解决方案?或者按照上面的建议尝试 VB.NET?