通过 VBA 使用 taskkill 杀死 Excel 进程

问题描述

我需要终止一个在后台运行的 Excel 进程。我使用下面显示的代码在运行 32 位 Office 的机器上成功完成了它。此代码未在运行 64 位 Office 的计算机上执行,并在语句 Set objProessSet = 处引发自动化错误。 . . (虽然我认为问题是前一个语句的失败)。我的操作系统是 Windows 10。所以,我的问题是我需要对两个 Set 语句进行哪些更改以允许代码在 64 位 Office 上运行。或者,是否有可以在两个版本的 Office 上正确运行的代码?另一种可能性是 64 位 Office 需要一种完全不同的方法。

Dim objServices As Object,objProcessSet As Object,Process As Object
Dim command As String
Dim cmd As String: cmd = "cmd.exe /S /C taskkill /pid "
Set objServices = GetObject("winmgmts:\\.\root\CIMV2")
Set objProcessSet = objServices.ExecQuery("SELECT ProcessID,FROM Win32_Process WHERE name = ""excel.exe""",48)
'loop over all Excel processes - should be only one at most
For Each Process In objProcessSet
    command = cmd & Process.ProcessID
    Call Shell(command,vbNormalFocus)
Next Process

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...