Jede Zeile der Spalte durchgehen und ändern
Schritt-für-Schritt-Anleitung
Um jede Zeile einer bestimmten Spalte in Excel zu bearbeiten, kannst du den folgenden VBA-Code verwenden. In diesem Beispiel gehen wir davon aus, dass du die Werte in der Spalte "J" ändern möchtest, indem du den Text nach einem Bindestrich entfernst.
-
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Klicke auf Einfügen
und wähle Modul
.
-
Kopiere den folgenden Code in das Modul:
Sub ZEntfernen()
Dim start As Long, letzte As Long, lngZ As Long, strW As String
start = 2
letzte = ActiveSheet.Range("J65536").End(xlUp).Row
For lngZ = letzte To start Step -1
strW = Cells(lngZ, 10).Value
Cells(lngZ, 10) = Right(strW, InStr(1, strW, "-", vbTextCompare) - 1)
Next
End Sub
-
Schließe den VBA-Editor und gehe zurück zu Excel.
-
Führe das Makro aus, um die Änderungen vorzunehmen.
Häufige Fehler und Lösungen
Alternative Methoden
Eine einfachere Methode, um den Text vor einem Bindestrich in Excel zu entfernen, ist die Verwendung der integrierten ERSETZEN
-Funktion. Du kannst auch den folgenden VBA-Code nutzen, um alle Zellen in der Spalte zu ändern:
Range("J:J").Replace what:="-*", Replacement:="", lookat:=xlpart
Diese Methode ist besonders nützlich, wenn du den Text in mehreren Zellen gleichzeitig bearbeiten möchtest.
Praktische Beispiele
Wenn du beispielsweise in der Spalte "J" die Werte "Auto-Haus", "Fahrrad-Haus" und "Zug-Haus" hast, wird der Code die Werte in "Haus" umwandeln:
- Ursprünglich:
- Auto-Haus
- Fahrrad-Haus
- Zug-Haus
- Nach Ausführung des Codes:
Tipps für Profis
- Nutze die
Application.ScreenUpdating = False
-Anweisung zu Beginn deines Codes, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren. Dies verbessert die Leistung.
- Wenn du häufig mit ähnlichen Aufgaben arbeitest, kannst du den Code anpassen, um mehrere Spalten gleichzeitig zu bearbeiten.
FAQ: Häufige Fragen
1. Warum beginnt die Schleife bei 2?
Die Schleife beginnt bei 2, da in der Regel die erste Zeile die Überschriften enthält, die nicht bearbeitet werden sollen.
2. Was bewirkt die -1
in der Schleife?
Die -1
sorgt dafür, dass das Ergebnis der InStr
-Funktion korrekt berechnet wird, wenn die Schleife rückwärts durch die Zeilen geht.
3. Kann ich den Code anpassen, um mehrere Spalten gleichzeitig zu bearbeiten?
Ja, du kannst den Code erweitern, indem du weitere Cells
- oder Range
-Anweisungen für die gewünschten Spalten hinzufügst.
4. Wie kann ich den Code ändern, um die neuen Werte bei Zelle(1, 1) zu platzieren?
Ändere die letzte Zeile des Codes zu:
Cells(1, 1).Resize(UBound(Br) + 1, UBound(Br, 2) + 1) = Br
Dies platziert die neuen Werte in der ersten Zeile der Tabelle.