簡體   English   中英

Excel 在 Workbook_Open 上啟動宏時未完全打開

[英]Excel does not fully open when starting macro on Workbook_Open

我寫了一個makro,我想在打開工作簿時直接運行。 它可以工作,但是,宏在真正的電子表格完全打開之前就開始了,我只看到 Excel 在 makro 運行的整個過程中飛濺。

我應該提到我通過 Windows 任務計划程序打開工作簿。 打開文件后,宏 go 通過循環打開其他 Excel 文件的列表,這些文件正在使用 SAP Analysis 插件更新外部數據。

我將帶有宏的電子表格作為計划任務調用以更新數據,然后再次自動關閉它:

Private Sub Workbook_Open()
    If Range("start_on_open").value = "YES" Then
        Call Process_action_table
    End If
End Sub

start_open是我工作表中的一個命名范圍,當我將其設置為“YES”時,makro 將自動啟動。

當 function“Process_action_table”正在運行時,我在電子表格中顯示狀態信息,但當然只有啟動屏幕可見,實際上沒有顯示任何內容。

當我“手動”運行宏時,一切正常。 在我看來,好像沒有足夠的處理時間來正確打開電子表格。

我在開始時添加了以下代碼,但無濟於事:

t_end = Now + TimeValue("0:0:10")
Do While Now < t_end
    DoEvents
Loop

任何建議將不勝感激。

潛水托比。 如果工作表加載是必不可少的條件,而不是使用Workbook_Open() ,則使用Worksheet_Activate()是合適的。 嘗試將此代碼粘貼到包含“start_on_open”范圍的工作表中:

Private Sub Worksheet_Activate()
    If Range("start_on_open").value = "YES" Then
        Call Process_action_table
    End If
End Sub

我沒有嘗試過這段代碼。 請反饋好不好。 它將循環/等待工作簿可寫。

Private Sub Workbook_Open()
Dim wb As Workbook
Set wb = ThisWorkbook
    If Range("start_on_open").value = "YES" Then
        'wait for workbook to writeable
        Do Until wb.ReadOnly = False
            Application.Wait Now + TimeValue("00:00:01")
        Loop
        Call Process_action_table
    End If
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM