vba - 通过 VBA 终止所有资源管理器实例 - Excel

标签 vba excel excel-2010

Private Sub CommandButton1_Click()
Dim objWMI As Object, objProcess As Object, objProcesses As Object

Set objWMI = GetObject("winmgmts://.")
Set objProcesses = objWMI.ExecQuery("Select * FROM Win32_Process Where Name = 'iexplore.exe'")

For Each objProcess In objProcesses
    objProcess.Terminate
Next

Set objProcesses = Nothing
Set objWMI = Nothing

Unload WebForm

End Sub    

尝试使用此方法在运行某些从基于 Web 的服务器检索数据的功能之前关闭 Explorer 的所有实例,但当它尝试关闭具有多个选项卡的打开的浏览器时遇到问题。如果用户只打开一个 IE 窗口(一个选项卡),那么它会关闭它并继续前进;如果这些用户单独打开了多个窗口(不在一个窗口中打开选项卡),那么它会很好地关闭所有窗口并继续;但由于某种原因,如果打开一个窗口并包含多个选项卡,则会出现运行时错误“-2147217406 (80041002)”:“未找到”。任何解决此问题的帮助将不胜感激。

最佳答案

不完全符合您的要求,而是另一种使用 powershell 的方法,并包含一个选项(从 here 仅在 IE 打开超过 X 秒的情况下关闭窗口。

Sub Comesfast()
X2 = Shell("powershell.exe get-process iexplore | ? { ([DateTime]::Now - $_.StartTime).TotalSeconds -gt 05 } | stop-process", 1)
End Sub

关于vba - 通过 VBA 终止所有资源管理器实例 - Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44167647/

相关文章:

html - 通过 F5 或 F8 运行一次/两次但随后出现多个错误的代码

excel - 使用VBA将CSV文件读入Excel,然后将结果输出到特定工作表

excel - SUM 公式中的 CONCATENATE 函数

vba - 仅当该名称的工作表不存在时才创建新工作表并为其命名

VBA 将行高与粘贴图像大小相匹配

vba - 循环遍历结合路径和名称的工作簿

java - XSSFWorkbook 共享使用 EXCEL 文件

excel - 连接或组合多个值并保留字体和颜色

c# - 使用工作表作为数据源的 VSTO Excel 简单示例

vba - 在 Excel 中,如何设置 VBA ComboBox,以便在复制工作表时它仍然可以工作?