这有点棘手,但让我尝试一下。
我在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上没有打开?
谢谢!
答案 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