以下は実行しているコードです。私が望むものが得られるかどうかは分かりません。
しかし、不思議なことに、コードの実行には時間がかかりすぎています。
私はそれを1時間待っていました。
私はコードにいくつかのエラーがあるはずだと思いました。
誰もがこれについていくつかの光を当てることができますか?VBA:見つかったセルの前に新しい行を挿入
Set x = Workbooks.Open("C:\Users\Desktop\testing.xlsx")
For Each ws In x.Worksheets
If ws.Name <> "Master" Then
lrow = ws.Cells(Rows.Count, "A").End(xlUp).Row
Set rng = ws.Range(Cells(1, 1), Cells(lrow, 1))
For Each Acell In rng
If (Acell.Value = "Sum") Then
Acell.Offset(-1, 0).EntireRow.Insert
End If
Next Acell
End If
Next ws
「マスター」シート以外のブックのすべてのシートについて、Col Aの「合計」語を探しています。
"sum"という単語が列に複数回表示されますか? – Hank
行を削除または挿入する場合(特に現在の行の前)は、常に最後の行から最初の行に逆順に移動する必要があります。 –
そして、あなたはワークシートに**常に 'Cells.'、' Rows'、 'Range'などを指定してください。' ws.Cells'、 'ws.Rows'、' ws.Range '。 **ワークシートの認定を行わずに使用しないでください。**あなたがワークシートを修飾しない場合、Excelは常にあなたが代わりに 'ActiveSheet'を意味すると仮定します(これはほとんど間違っています)。理解を深めるために[VBAベストプラクティス:ワークシートを想定しない](https://stackoverflow.com/documentation/excel-vba/1107/vba-best-practices/9218/never-assume-the-worksheet)をお読みください。 –