要从Excel/VBA调用长时间运行的外部程序,可以使用以下方法:
- 使用Shell函数:Shell函数可以在VBA中运行外部程序。例如,可以使用以下代码运行Notepad.exe:Shell "notepad.exe"Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & _
strComputer & "/root/cimv2")
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = 1
Set objProcess = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & _
strComputer & "/root/cimv2:Win32_Process")
intReturn = objProcess.Create("notepad.exe", null, objConfig, intProcessID)AppActivate "Notepad"这些方法可以帮助您从Excel/VBA调用长时间运行的外部程序。请注意,如果您需要与外部程序进行交互,例如发送数据或接收结果,则需要使用其他方法,例如DDE、OLE Automation或自定义COM组件。
- 使用WMI:Windows Management Instrumentation (WMI) 是一种用于管理Windows系统的工具,可以用来启动和管理外部程序。例如,可以使用以下代码运行Notepad.exe:
- 使用VBA的AppActivate函数:AppActivate函数可以激活已经运行的外部程序。例如,可以使用以下代码激活Notepad: