誰かがこの問題を助けてくれることを願っています。Excel VBAが突然マクロランタイム中にデザインモードに移行する
私は、このワークブックのデータを別の既存のワークブック(レポートワークブック)にコピーするサブルーチンを用意しています。
コードを実行しようとすると、ランタイム中にレポートワークブックが開くと、突然停止し、デザインモードに移行することがわかりました。したがって、ルーチンの実行を妨げる。
しかし、私はサブルーチンにブレークポイントを入れて、それをもう一度やり直そうとします。問題なく実行されます。これはちょっと奇妙なようです。
私はこれを理解しようとしています。
これまでのところ私が試したトラブルシューティングの手順です。
- 別のマシンでブックを実行しようとしました。
- レポートワークブックですべてのWorkbook_Openを削除しようとしました。
- レポートブックのすべてのマクロコードを削除しようとしました。
- エラーハンドラを挿入します。残念ながら、エラーは表示されません。
- サブルーチンでDoEventsコードを削除しようとしました。
まだ運がありません。コードの実行を停止します。
Private Sub TransferRawData()
Dim wsPTRawData As Worksheet, wbPTWorkBook As Workbook, wsOutputRaw As Worksheet
Dim filePath As String, FileName As String, ptTargetRow As Long
Application.EnableEvents = False
Application.StatusBar = "Exporting All Raw Data... Please wait a moment..."
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
filePath = ThisWorkbook.Path & "\"
FileName = filePath & pt_FileName
Set wbPTWorkBook = Workbooks.Open(FileName:=FileName, UpdateLinks:=0, IgnoreReadOnlyRecommended:=True)
DoEvents
Set wsPTRawData = wbPTWorkBook.Worksheets(pt_ProdRawSheet)
Set wsOutputRaw = ThisWorkbook.Sheets(merger_prodOutputSheet)
ptTargetRow = wsPTRawData.Range("A" & Rows.Count).End(xlUp).Row + 1
If lastRow(wsOutputRaw, "A") > 1 Then wsOutputRaw.Range("A2:F" & lastRow(wsOutputRaw, "A")).Copy wsPTRawData.Range("A" & ptTargetRow)
wbPTWorkBook.Close True
Set wsOutputRaw = Nothing
Set wsPTRawData = Nothing
Set wbPTWorkBook = Nothing
End Sub
私は上記のコードを使用するワークブックを3セット持っています。それらのすべてがレポートワークブックにデータをコピーします。しかし、彼らはすべて転送ルーチンの実行に問題があります。
詳細については、ルーチンを実行すると、Workbooks.Openイベントが実行されます。 VBAプロジェクトウィンドウとExcelウィンドウのスクリーンショットです。
エラーが表示されますか? ...可能であればスクリーンショットを投稿してください。 – jsotola
こんにちは@jsotola、それにエラーメッセージは表示されませんでした。しかし、自分の画面のスクリーンショットを追加して、私の問題についてのより良い概観を提供しました。 –
そこにエラーキャッチを追加してエラーメッセージを出力できますか?場合によっては隠れたエラーメッセージが表示される – Maldred