我正在使用 WshShell 从 Excel 中的 VBA 运行批处理文件。
- 批处理文件非常简单,一行运行一个数字运算程序。我可以直接运行批处理文件而不会出现问题。
- 我正在使用 WshShell 或 WScript.Shell,因为我希望 VBA 在计算完成后等待将结果加载回 Excel。
- 我参考了“Microsoft Scripting Runtime”和“Windows Script Host Object Model”
- 我已经使用相同的代码很长时间了。直到 2-3 周前它工作得很好。现在它关闭 Excel。如果我打开了一些电子表格,它会将它们全部关闭。
- 我有两个版本,但它们都在“Set WinSh = ...”行崩溃。Excel 在几 (~10) 秒内没有响应,然后关闭。
- 我正在使用 Office 365 MSO (16.0.12527.21294) 32 位。它由我的组织管理。
- 我在 Word 中尝试了相同的代码,它也崩溃了。
任何人都知道最近的更新是否可以做到这一点?或者我可以使用的另一种方法?
潜艇是:
Public Sub RunBatch(FPath As String)
Dim WinSh As Object
Dim StrCmd As String
Dim ErrCode As Long
Set WinSh = New WshShell
StrCmd = Chr(34) & FPath & Chr(34)
ErrCode = WinSh.Run(StrCmd, WindowStyle:=1, WaitOnReturn:=True)
End Sub
Public Sub RunBatch2(FPath As String)
Dim WinSh As Object
Set WinSh = VBA.CreateObject("WScript.Shell")
WinSh.Run FPath, 1, True
End Sub