2017-01-22 18 views
0

初回ポスター、初心者レベルのVBAスクリプト作成者はこちら私はStackOverflowの関連する質問を見てきました。私の質問に対する答えはちょうど想定されていますので、私はいくつかの説明を求めます。次のExcel VBAスクリプトは、90枚のワークブックの上部から空の行をすべて削除するためのスクリプトです。スクリプトを実行すると、開いているワークシートにのみ影響します。なぜそれがすべてのシートをループしないのですか?VBA Excel ForEachワークシートループ

Sub Macro1() 

    Dim j As Long 
    Dim ws As Worksheet 

    For Each ws In ActiveWorkbook.Worksheets 
     For j = 10 To 1 Step -1 
      If Cells(j, 3) = "" Then 
       Rows(j).Delete 
      End If 
     Next j 
    Next 

End Sub 

答えて

2

あなたは、If文で、削除コマンドに必要なワークシートを見て、それを指示する必要があります:勤務

Sub Macro1() 

Dim j As Long 
Dim ws As Worksheet 

For Each ws In ActiveWorkbook.Worksheets 
    For j = 10 To 1 Step -1 
     If ws.Cells(j, 3) = "" Then 
      ws.Rows(j).Delete 
     End If 
    Next j 
Next 

End Sub 
+0

。どうもありがとう。 – PrinceofSaxony

0
Sub Macro1() 

Dim j As Long 
Dim ws As Worksheet 

For Each ws In ThisWorkbook.Worksheets 
ws.Activate 
    For j = 10 To 1 Step -1 
     If ws.Cells(j, 3) = "" Then 
      ws.Rows(j).Delete 
     End If 
    Next j 
Next 

End Sub 
+3

これは疑問に答えるようですが、コードを単独でポストするのではなく –