Anführungszeichen im String per VBA entfernen
Schritt-für-Schritt-Anleitung
Um Anführungszeichen aus einem String in Excel mithilfe von VBA zu entfernen, kannst Du die Substitute
-Funktion verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
- Öffne Excel und drücke
Alt + F11
, um den VBA-Editor zu öffnen.
- Erstelle ein neues Modul, indem Du mit der rechten Maustaste auf „VBAProject“ klickst und „Einfügen“ wählst.
- Wähle „Modul“ aus.
- Füge den folgenden Code in das Modul ein:
Sub AnfuehrungszeichenEntfernen()
ActiveCell.Value = Application.Substitute(ActiveCell.Value, """", "")
End Sub
- Schließe den VBA-Editor und zurück in Excel, markiere die Zelle, die den Text mit Anführungszeichen enthält.
- Drücke
Alt + F8
, wähle „AnfuehrungszeichenEntfernen“ aus und klicke auf „Ausführen“.
Jetzt sollten alle Anführungszeichen im ausgewählten String entfernt sein.
Häufige Fehler und Lösungen
-
Fehler: Das Skript funktioniert nicht, weil die Anführungszeichen nicht entfernt werden.
- Lösung: Stelle sicher, dass Du im Code die korrekte Anzahl an Anführungszeichen verwendest. Bei VBA musst Du vier Anführungszeichen
""""
verwenden, um ein einziges Anführungszeichen im String darzustellen.
-
Fehler: Es werden auch Anführungszeichen am Anfang und Ende entfernt.
- Lösung: Wenn Du nur die Anführungszeichen in der Mitte entfernen möchtest, musst Du eine andere Methode verwenden. Siehe „Alternative Methoden“ weiter unten.
Alternative Methoden
Falls Du Anführungszeichen nur in bestimmten Positionen entfernen möchtest, kannst Du eine benutzerdefinierte Funktion erstellen. Hier ein Beispiel:
Function AnfuehrungszeichenMitAusnahme(str As String) As String
Dim result As String
Dim i As Integer
For i = 1 To Len(str)
If Mid(str, i, 1) <> """" Then
result = result & Mid(str, i, 1)
End If
Next i
AnfuehrungszeichenMitAusnahme = result
End Function
Du kannst diese Funktion in einer Zelle verwenden, indem Du =AnfuehrungszeichenMitAusnahme(A1)
eingibst, wobei A1
die Zelle mit dem Text ist.
Praktische Beispiele
Angenommen, Du hast in Zelle A1 den Text:
"Ich bin zu "blöd" für VBA"
Nach der Ausführung des Makros wird der Text zu:
Ich bin zu blöd für VBA
Eine alternative Verwendung könnte sein, dass Du nur die Anführungszeichen in der Mitte entfernst, während die am Anfang und Ende erhalten bleiben.
Tipps für Profis
- Nutze die
Replace
-Funktion in VBA, um mehrere Zeichen in einem String auf einmal zu ersetzen.
- Bei komplexeren Anforderungen kannst Du reguläre Ausdrücke verwenden, um Anführungszeichen gezielt zu filtern.
- Halte Deinen VBA-Code sauber und gut dokumentiert, um die Wartung zu erleichtern.
FAQ: Häufige Fragen
1. Warum muss ich vier Anführungszeichen verwenden?
In VBA sind Anführungszeichen Teil der Syntax. Um ein einzelnes Anführungszeichen darzustellen, benötigst Du zwei Anführungszeichen. Daher benötigst Du für den Befehl Application.Substitute
vier Anführungszeichen.
2. Kann ich das Ergebnis direkt in eine andere Zelle schreiben?
Ja, Du kannst den Code anpassen, um das Ergebnis in eine andere Zelle zu schreiben, indem Du Range("B1").Value = ...
verwendest, um das Ergebnis in Zelle B1 zu speichern.
3. Funktioniert dies auch in Excel für Mac?
Ja, der VBA-Code ist plattformübergreifend und sollte sowohl in Windows- als auch in Mac-Versionen von Excel funktionieren, solange VBA aktiviert ist.