2017-01-22 5 views
0

Das erste Mal Poster, Anfänger Level VBA Scripter hier. Ich habe die verwandten Fragen hier auf StackOverflow angeschaut und die Antwort auf meine Frage wird nur angenommen, also bitte ich um etwas Klärung. Das folgende Excel VBA-Skript soll alle leeren Zeilen von den Oberseiten eines 90-Blatt-Arbeitsheftes entfernen. Wenn ich das Skript ausführe, betrifft es nur das Arbeitsblatt, das ich geöffnet habe. Warum wird es nicht alle Blätter durchlaufen?VBA Excel ForEach Arbeitsblatt Loop

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 

Antwort

2

Sie müssen es sagen, auf dem erforderlichen Arbeitsblatt in der If-Anweisung zu sehen, und in der Löschbefehl:

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

Arbeitete. Vielen Dank. – 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

Dies scheint die Frage zu beantworten, aber Sie sollten wirklich darauf hinweisen, was Ihr Code tut, anstatt es nur alleine zu veröffentlichen –