多线程上的WScript.Shell.run

时间:2016-11-29 08:27:14

标签: vba excel-vba excel

我想知道是否有办法在另一个线程上运行shell窗口而不是excel?

我的想法是在启动shell时不冻结excel。

例如:

Dim objShell
Set objShell = WScript.CreateObject ("WScript.shell")
objShell.run "cmd /K CD C:\ & Dir"
Set objShell = Nothing

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

答案是否定的,您无法在Excel中创建多线程应用程序。

但是,您可以使用Application.ScreenUpdating = False锁定当前的Excel工作簿。

请确保在代码末尾启用它,如Application.ScreenUpdating = True

希望有所帮助!

答案 1 :(得分:1)

我同意并不同意Praktik。我同意,因为您无法在Excel中创建真正的多线程应用程序。我不同意,因为你可以使用一些技巧来执行另一个脚本。 让我们假设您有一个名为" Script.vbs"的vbs脚本。然后你可以像这样编码taskId = Shell("wscript Script.vbs parms")。该脚本将独立于您的VBA程序运行。但这可能不是你想要的。