Ich möchte prüfen, ob das 5. Zeichen von rechts ein Leerzeichen ist, falls ja, dieses löschen.
Das ganze in VBA.
Die Stringfolge in den zu prüfenden Zellen sind unterschiedlich lang. Muss also von rechts suchen.
Hat jemand einen Tipp?
hartmut
Sub leer_vor_mp3_weg()
Dim rng As Range
For Each rng In Sheets(1).Range("B1:B2000")
If Left(Right(rng, 5), 1) = " " Then
rng = Left(rng, Len(rng) - 5) & Right(rng, 4)
End If
Next
End Sub
Nochmals vielen Dank für eure Anregungen.
Hartmut
Öffne Excel und erstelle ein neues VBA-Modul:
ALT + F11, um den VBA-Editor zu öffnen.Einfügen > Modul, um ein neues Modul zu erstellen.Füge den folgenden Code ein, um die letzten 5 Zeichen einer Zelle zu überprüfen und gegebenenfalls zu bearbeiten:
Sub leer_vor_mp3_weg()
Dim rng As Range
For Each rng In Sheets(1).Range("B1:B2000")
If Left(Right(rng, 5), 1) = " " Then
rng = Left(rng, Len(rng) - 5) & Right(rng, 4)
End If
Next
End Sub
Anpassen des Bereichs: Du kannst Sheets(1).Range("B1:B2000") anpassen, um den gewünschten Zellbereich zu definieren.
Starte das Makro:
ALT + F8, wähle das Makro leer_vor_mp3_weg aus und klicke auf Ausführen.Fehler: "Typenkonflikt"
Lösung: Stelle sicher, dass der Zellbereich nur Textwerte enthält.
Fehler: "Ausnahmefehler"
Lösung: Überprüfe, ob der Zellbereich tatsächlich Zellen mit Text enthält.
Code funktioniert nicht
Stelle sicher, dass Du den Code in ein Modul eingefügt hast und das Makro richtig ausführst.
VBA Mid-Funktion: Du kannst die Mid-Funktion verwenden, um spezifische Zeichen von rechts auszulesen.
If Mid(strVar, Len(strVar) - 4, 1) = " " Then
' Weiterverarbeitung
End If
Excel-Formel: Für einfache Anwendungen kannst Du auch folgende Excel-Formel verwenden, um die letzten 5 Zeichen zu extrahieren:
=RECHTS(A1, 5)
Beispiel 1: Leerzeichen entfernen
Angenommen, in Zelle B1 steht "Test ". Nach Ausführung des Makros wird der Inhalt zu "Test".
Beispiel 2: Zeichen bis zu einem bestimmten Zeichen auslesen
Du kannst InStr verwenden, um ein bestimmtes Zeichen zu finden und den String bis dorthin auszulesen:
Dim pos As Integer
pos = InStrRev(strVar, "-")
If pos > 0 Then
' Zeichenfolge bis zum Bindestrich auslesen
Dim result As String
result = Left(strVar, pos - 1)
End If
Verwendung von InStrRev: Diese Funktion ist nützlich, um Zeichen von rechts zu suchen.
pos = InStrRev(strVar, " ")
Kombination von Funktionen: Du kannst Right, Left und Mid kombinieren, um komplexere Anforderungen zu erfüllen.
Effizienz: Arbeite mit Arrays, wenn Du große Datenmengen bearbeitest, um die Leistung zu verbessern.
1. Wie kann ich den Code anpassen, um mehr als 5 Zeichen zu bearbeiten?
Du kannst die Zahl 5 in den Funktionen Right oder Left anpassen, um die gewünschte Anzahl von Zeichen zu bearbeiten.
2. Welche Excel-Versionen unterstützen diesen VBA-Code?
Der Code funktioniert in allen Versionen ab Excel 95. Achte jedoch darauf, dass einige Funktionen, wie StrReverse, erst ab Excel 2000 verfügbar sind.
3. Kann ich den Code für andere Bereiche verwenden?
Ja, ändere einfach den Zellbereich in Sheets(1).Range("B1:B2000") nach Deinen Bedürfnissen.