java - 无法从 java 代码运行宏

标签 java vba excel

下面是我想从 javacode 运行的 vb 脚本。我使用下面的命令调用它 文件路径 = "D:\myVBS.vbs";

    Runtime.getRuntime().exec(filePath);

我看到以下错误:java.io.IOException:无法运行程序“D:\myVBS.vbs”:CreateProcess error=193,%1 不是有效的 Win32 应用程序

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("D:\easyAutomation2017\GoEasy\requiredSource\TestData1.xlsm")

objExcel.Application.Run "TestData1.xlsm!refreshXLS"
objExcel.ActiveWorkbook.Close

objExcel.Application.Quit
WScript.Quit

谷歌搜索后,我明白这就是问题所在:您无法直接在 Windows 上运行 shell 脚本,因为它在 Windows 意义上不是可执行文件

那么我该如何运行它。

请帮忙!! 谢谢

最佳答案

要运行 vbs 脚本,您需要运行 Wscript.exe 并将 vbs 文件作为参数传递。

例如,

Runtime.getRuntime().exec(new String[]{"C:\\Windows\\System32\\wscript.exe", "D:\\myVBS.vbs"});

关于java - 无法从 java 代码运行宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44177068/

相关文章:

java - 如何在 Java 中使用 DES(CBC 模式)加密序列化对象?

VBA 代码仅适用于第一张纸

vba - 如何使用 VBA 检测选择行上方的合并单元格?

arrays - VBA WorksheetFunction.Sum 不适用于数组,但适用于范围?

vba - 如何简化此 VBA switch 语句而不重复这么多代码?

python - 为什么我的 openpyxl 加载只拉工作表中的一个单元格

java - java中的 double 舍入

java - 为什么在 Java 中允许初始化对 Null 的引用?

java - 使用 Calendar 类获取 Java 中特定日期的星期几作为字符串

excel - 在 for 循环中通过多个工作表提取 IF 条件为 False 的消息框中的工作表名称列表