为了响应客户端的请求,Node.js 需要将图像中的 Excel 文件中的图表导出到存储库中。 我选择使用 VBA 宏,因为我认为我没有其他解决方案。 VBA 代码工作正常(当我手动调用它时),但我希望可以将它与 Node.js 事件连接起来。 VBScript 允许我在 script.vbs 文件中调用 VBA 宏:
Option Explicit
On Error Resume Next
CallVBA
Sub CallVBA()
Dim ApplicationExcel
Dim ClasseurExcel
Set ApplicationExcel = CreateObject("Excel.Application")
Set ClasseurExcel = ApplicationExcel.Workbooks.Open("H:/macrosVBA.xlsm")
ApplicationExcel.Visible = False
ApplicationExcel.Run "ChartUpload"
ApplicationExcel.Quit
Set ClasseurExcel = Nothing
Set ApplicationExcel = Nothing
End Sub
我现在的问题是运行 JavaScript 文件中的 VBScript:
var objShell = new ActiveXObject("WScript.shell");
objShell.run('H:/script.vbs');
我收到错误:
ReferenceError: ActiveXObject is not defined
添加win32ole和 winax没有改变任何东西,它们似乎不再起作用了。 我正在寻求您的帮助以获得其他解决方案或修复我的 ActiveXObject 错误。
提前致谢
最佳答案
您的 Node.js 可能是 64 位版本,而您的 Office/Excel 可能是 32 位版本。
您需要运行 32 位 VBScript 解释器才能访问 32 位 CreateObject("Excel.Application")
const { spawn } = require("child_process");
const bat = spawn("C:\\Windows\\SysWOW64\\wscript.exe", ["H:\\script.vbs"]);
关于javascript - 从 Node.js 调用 VBScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50605619/