問題:コードの実行が完了するまでブックが開かれません。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