为了回答来自客户端的请求,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"]);