使用VBA超时后打开EXE应用程序

时间:2018-12-13 16:06:51

标签: excel vba excel-vba

这有点棘手,但让我尝试一下。

我在VBA项目中有6个用户窗体。 宏的执行将隐藏每种形式并显示下一行。 在第一个用户窗体中,在“下一步”按钮的单击事件上,有一些代码可以修改当前打开的Excel文件,然后隐藏当前的用户窗体,显示下一个用户窗体,并在5秒钟超时后打开“ saplogon.exe”。

一切正常,但是直到我关闭第6个用户窗体后,saplogon才打开。而我希望它在第二个文件中打开,这是打开文件的代码所在的位置。

我不太确定自己在做什么错。以下是我在UserForm1中使用的代码。

Application.ScreenUpdating = False

'My Code
UserForm2.Show

Dim sFullPathToExecutable As String

sFullPathToExecutable = "C:\Program Files(x86)\SAP\FrontEnd\SAPgui\saplogon.exe"

Application.Wait (Now + TimeValue("0:00:05"))
Shell sFullPathToExecutable

End Sub

为什么EXE在UserForm2上没有打开?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果其他任何人遇到类似的情况,您必须在后台打开程序并显示下一个用户窗体,而又不失去对excel的关注,请将shell("location of the .exe")行放入下一个用户窗体的Activate事件:-

Private Sub UserForm_Activate()
Application.Wait (Now + TimeValue("0:00:02"))
Shell "C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe"
End Sub