从excel运行c#console应用程序并等待应用程序完成

时间:2015-05-13 13:35:46

标签: c# .net excel vba excel-vba

我正在使用下面的代码行在Excel中运行c#console应用程序。代码工作正常。该过程大约需要20秒才能运行。我想知道如何让我的vba代码等待c#应用程序完成,然后继续执行此行之后的代码?

我不想使用暂停或类似功能。

 Dim id As Integer
 id=Shell("""C:\MyFolder\bin\Debug\MyApp.exe"" /PARA1 " & p1 & " /PARA2 " & p2, vbNormalFocus)

1 个答案:

答案 0 :(得分:2)

您可以尝试使用此代码(灵感来自this post):

Dim id As Integer
Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1

id = wsh.Run("""C:\MyFolder\bin\Debug\MyApp.exe"" /PARA1 " & p1 & " /PARA2 " & p2, windowStyle, waitOnReturn)