0

我正在尝试使用 VBA 中的“im exportissues 123456”查询从 PTC(MKS)获取 CR(更改请求)状态。但它确实会打开状态表(通过查询打开的新 excel 表),除非我的代码结束。下面是我的代码片段。

Sub Query_CR_Status()

    shell_output = Shell("im exportissues 123456", 1)     'this should open up a new excel sheet containing CRs)

    Application.Wait (Now + TimeValue("0:00:20"))         'waiting 20sec

   'here: My code which will read information from the above generated excel sheet
End Sub

但我的问题是新的 excel 表不打开,除非它达到“结束子”

4

1 回答 1

0

Application.Wait()将阻止应用程序在指定的时间内执行任何操作。因此,如果您执行打开工作簿的命令,但应用程序处于等待模式,那么它将被延迟。

您可以尝试使用以下方法解决此问题:

Sub Query_CR_Status()

Dim wbC As byte
wbC = Workbooks.Count

    shell_output = Shell("im exportissues 123456", 1)

    While Workbooks.Count = wbC
        DoEvents '// Process pending messages until workbook count changes
    Wend

   '// Rest of code

End Sub

或者,Chip Pearson 创建了一个ShellAndWait可能更适合此的函数。

于 2016-05-27T11:33:51.707 回答