在工作中,我們有一個Excel VBA工具,我們定期使用它來生成報告。由於我們必須生成的報告數量衆多,運行時間可能會相當長。通常,我們在運行時減少的方式是將報告列表分成四個組,製作四份報告工具,然後使用副本1在服務器1上運行組1,在服務器2上使用副本2等組2運行,這樣他們都在同時運行。從VBA同時運行多個Excel實例?
想知道是否可以在一臺服務器上運行它們而不是四臺嗎?即讓VBA啓動一個工具,然後在另一個實例中啓動另一個工具,依此類推。看起來好像當我嘗試這樣做時,一次只能運行一次(雖然多個實例可以正常打開,所有工具都可以運行,但不會同時運行)。請告知我是否不清楚,謝謝!
你基本上試圖實現多線程。 VBA(COM實際上)是單線程的。您可以*通過從VBScript啓動Excel實例來模擬* MT。 –
另一個選擇是從'Workbook_Open'觸發報告生成,然後使用shell一堆實例。儘管VBScript可能更清潔。 – Comintern
@ Mat'sMug - VBA,但不是COM。您可以在COM中使用[MTA](https://msdn.microsoft.com/en-us/library/windows/desktop/ms693421(v = vs.85).aspx),但VBA僅限於STA。 – Comintern