| VBA-Beispiel 019 | |
|
|
|
Beispiel für gute und schlechte Programmierung |
|
|
Die beiden folgenden Makros führen jeweils zum gleichen Ergebnis. Beide überprüfen ob Spalte C und D leer sind. Wenn die Spalten keine Werte enthalten, werden die Werte von Spalte E-Y gelöscht. Das erste Makro ist umständlich mit activate geschrieben. Der Cursor rödelt von einer Zelle zur anderen und ständig muß der Bildschirm aktualisiert werden. Das zweite Makro erfüllt die Aufgabe wesentlich besser: Der Cursor bleibt wo er ist und die Zellen werden direkt angesprochen. |
|
|
Sub weg_schlecht() Dim i As Integer [c5].Activate For i = 1 To 31 'wenn erste Zelle leer dann nach rechts gucken If ActiveCell = "" Then ActiveCell.Offset(0, 1).Activate Else ActiveCell.Offset(1, 0).Activate GoTo weiter End If 'wenn zweite Zelle auch leer dann rechts löschen If ActiveCell = "" Then With Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 21)) .ClearContents End With End If ActiveCell.Offset(1, -1).Activate weiter: Next i End Sub |
|
| Kürzer, schneller und besser ist dieses Makro: | |
|
Sub weg_gut() Dim i As Integer For i = 5 To 35 If Cells(i, 3) = "" And Cells(i, 4) = "" Then With Range(Cells(i, 4).Offset(0, 1), Cells(i, 4).Offset(0, 21)) .ClearContents End With End If Next i End Sub |
|
|
Download: vba019.zip |
|
|
relevante Links: |
|
| |