Eine Schleife...
02.05.2015 22:24:49
Beverly
Hi Kurt,
...über die Spalten selbst lohnt sich nur, wenn es eine einfache umzusetzende Systematik gibt (was bei dir nicht der Fall ist), nicht jedoch, wenn man unnötige Kopfstände machen muss, um den richtigen Wert für den nächsten Durchlauf zu berechnen.
Der einfachste Weg ist, alle Spaltennummern in ein Array zu packen und dann das Array zu durchlaufen:
Sub Leeren()
Dim arrSpalten()
Dim lngLetzte As Long
Dim intSpalte As Integer
arrSpalten = Array(12, 13, 14, 18, 25, 45)
lngLetzte = ActiveSheet.Cells.Find(What:="*", _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For intSpalte = 0 To 5
Range(Cells(10, arrSpalten(intSpalte)), _
Cells(lngLetzte, arrSpalten(intSpalte))).ClearContents
Next intSpalte
End Sub
Oder, falls du für jede Spalte die letzte belegte Zeile einzeln ermitteln willst (was sinnlos ist, da ja unterhalb der letzten belegten Zeile jeder Spalte nichts weiter steht - siehe meinen letzten Beitrag), dann so:
Sub Leeren2()
Dim arrSpalten()
Dim lngLetzte As Long
Dim intSpalte As Integer
arrSpalten = Array(12, 13, 14, 18, 25, 45)
For intSpalte = 0 To 5
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, arrSpalten(intSpalte))), _
Cells(Rows.Count, arrSpalten(intSpalte)).End(xlUp).Row, Rows.Count)
Range(Cells(10, arrSpalten(intSpalte)), _
Cells(lngLetzte, arrSpalten(intSpalte))).ClearContents
Next intSpalte
End Sub