我有时会运行一些vbs / vba脚本。但我不希望下一个vbscript继续进行,而另一个vba-或vbscript正在运行。确定另一个vbscript是否正在运行并延迟执行当前的vbscript是没有问题的:
Set objSWbemServices = GetObject ("WinMgmts:Root\Cimv2")
Set colProcess = objSWbemServices.ExecQuery _
("Select * From Win32_Process where name = 'wscript.exe'")
Do While colProcess.Count > 1
WScript.Sleep 10000
Set colProcess = objSWbemServices.ExecQuery _
("Select * From Win32_Process where name = 'wscript.exe'")
Loop
但是我找不到在Excel中运行的特定vba脚本进程。如果vba脚本正在运行,如何检查vbscript?
答案 0 :(得分:1)
我认为这是不可能的,据我所知,Excel中的VBA不是作为Windows操作系统中的单独进程执行的。
但是,通过将CommandLine
中的Win32_Process
列与特定脚本名称相匹配,可以找到vbscript的WSH / WScript / CScript进程。