AW: Zeilen löschen von bis
11.06.2016 18:04:23
bis
Hi
das Selektieren des Tabellenblatts kannst du dir sparen, wenn du vor jedes Cells, Range, Rows und Columns immer das jeweilige Tabellenblatt davor schreibst:
for lr = wks_1.Cells(wks_1.Rows.count, 1).end(xlup).Row + 1
if wks_1.Cells(lr, 1) = "" Then
naja, und so weiter halt
da das viel schreibarbeit werden kann, kann man die WITH-Klammer verwenden, um nicht jedesmal das ganze Tabellenblatt hinschreiben zu müssen.
Wie das geht, hat Hajo ja gezeigt.
du kannst dir aber die Schleife sparen, in dem du das .END(xlDown) auch für die Ermittlung des zu löschenden Zellbereichs verwendest:
With wks_1
If .Cells(6, 1) = "" then
.Rows(5).Delete
Else
.Range(.Cells(5, 1), .Cells(5, 1).end(xldown)).EntireRow.Delete
End IF
end With
mach lieber eine Schleife über die beiden Tabellenblätter, damit du das Löschen nicht doppelt programmieren musst:
Sub Bereich1_Loeschen()
Dim wks
For Each wks In Array("Tabelle1", "Tabelle2")
With ThisWorkbook.Worksheets(wks)
If .Cells(5, 1) "" Then
If .Cells(6, 1) = "" Then
.Rows(5).Delete
Else
.Range(.Cells(5, 1), .Cells(5, 1).End(xlDown)).EntireRow.Delete
End If
End If
End With
Next
End Sub
Gruß Daniel