
これは非常に単純な質問かもしれませんが、私にはわかりません。13 個のスプレッドシートを作成するマクロを実行しています。これらの 13 個のスプレッドシートのうち、いくつかのスプレッドシートには列 A2 に何も入っていません。VBA で、A2 に何も入っていないすべてのスプレッドシートを削除し、A2 にデータが入っているスプレッドシートを残すマクロを作成できるようにしたいと思います。次のものを試しました。
Sub Delete()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Application.DisplayAlerts = False
If LenB(ActiveSheet.Range("A2")) = 0 Then ActiveSheet.Delete
Application.DisplayAlerts = True
Next ws
End Sub
これにより、A2 に何もない場合はアクティブなシートが削除されるため、私にとってはある程度の進歩ですが、次のシートに自動的に移動することはありません。
答え1
コードに一貫性がないので、どこでも のws
代わりにを使用する必要がありますActiveSheet
。