問題:直到代碼運行完畢,工作簿纔會打開。直到VBA代碼運行完畢,Excel工作簿纔會打開
詳情:我有一個循環,需要用戶有另一個文件打開,爲了使代碼以繼續。該文件必須從互聯網上下載並打開。如果文件未打開,則會出現一個msgbox,要求用戶打開該文件。即使我下載文件並打開它,它也不會打開,直到所有其他代碼都被執行完畢。
我的想法:也許有像「刷新」,就是更新當前狀態。我應該添加一些東西到現有的代碼中,刷新excel工作簿,看看是否有其他事情發生。
代碼如下:(代碼是好的,並適用於我所需要的,問題是,該工作簿不會打開,直到所有的其他代碼完成):
Private Function WorkbookActive() As Boolean
' Loop until the correct workbook is open
Do Until WorkbookActive = True
On Error Resume Next
If Workbooks("Rapport.csv") Is Nothing Then
If MsgBox("[Rapport.csv] - Workbook is currently not open." & vbNewLine & "Please download and open [Rapports.csv] and press OK", vbOKCancel, "Workbook not open") = vbCancel Then Exit Do
WorkbookActive = False
ElseIf Not Workbooks("Rapport.csv") Is Nothing Then
WorkbookActive = True
End If
Loop
End Function
FWIK,VBA使用單線程,您的循環將阻止其他操作(包括從Excel打開的工作簿)。要做你想做的事,你可能需要改變你的方法,詢問用戶_Rapport.csv_的位置,然後在你的代碼中打開它,並繼續你的程序。 – Prisoner
感謝您的回答,問題是我已經嘗試了很多方法來解決這個問題。主要的問題是,當代碼運行時,我無法打開任何其他文件。 – EliasWick
你有沒有嘗試在你的代碼中打開文件? FYR:http://stackoverflow.com/a/26417509/1050927 – Prisoner