könnte mir jemand sagen ob es einen Befehl gibt der mir sagt wann ich in einem String auf den ersten Buchstaben treffe wenn z.B. Zahlen oder Leerzeichen davor stehen!
Grüße
Thomas
Sub ErsterBuchstabe()
Dim i As Long
Dim var As Variant
For i = 1 To Len(ActiveCell)
var = Mid(ActiveCell.Value, i, 1)
Select Case var
Case Is = " "
Case Is <> IsNumeric(var)
MsgBox ("Es ist das " & i & " Zeichen")
Exit Sub
Case Else
End Select
Next i
End Sub
Um die Position des ersten Zeichens in einem String zu ermitteln, kannst Du ein einfaches VBA-Skript verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Erstelle ein neues Modul:
Füge den folgenden Code ein:
Sub ErsterBuchstabe()
Dim i As Long
Dim var As Variant
For i = 1 To Len(ActiveCell)
var = Mid(ActiveCell.Value, i, 1)
If var <> " " And Not IsNumeric(var) Then
MsgBox ("Es ist das " & i & " Zeichen")
Exit Sub
End If
Next i
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel.
Markiere die Zelle, deren Zeichenposition Du überprüfen möchtest.
Starte das Makro über ALT + F8
, wähle "ErsterBuchstabe" und klicke auf "Ausführen".
Jetzt solltest Du die Position des ersten Zeichens in dem String angezeigt bekommen.
Fehler: "Typenübereinstimmung"
Fehler: Das Makro gibt nichts zurück
Du kannst die Position eines Zeichens auch mit Excel-Funktionen ermitteln, ohne VBA zu verwenden. Hier ist eine Methode:
Benutze die Funktion FINDEN
:
=FINDEN("*",A1)
Diese Formel sucht das erste Zeichen in der Zelle A1 und gibt die Position zurück, wenn Du "*" anstelle eines spezifischen Zeichens nutzt. Achte jedoch darauf, dass die FINDEN-Funktion nicht mit Platzhaltern umgehen kann.
Verwende die Funktion WECHSELN
:
=FINDEN(WECHSELN(A1," ",""),A1)
Diese Funktion entfernt die Leerzeichen und gibt die Position des ersten Zeichens zurück.
Beispiel 1: Wenn in A1 der Wert " 123abc" steht, gibt das VBA-Skript die Position 5 zurück, weil das erste Zeichen "a" ist.
Beispiel 2: In A1 steht "##@Test". Das Skript ignoriert die Sonderzeichen und gibt die Position 5 zurück, da "T" das erste Buchstaben-Zeichen ist.
Nutze die InStr
-Funktion in VBA, um die Position eines spezifischen Zeichens schneller zu finden:
Dim pos As Long
pos = InStr(1, ActiveCell.Value, "a")
If pos > 0 Then MsgBox "Position: " & pos
Teste Deine Skripte immer mit verschiedenen Eingaben, um sicherzustellen, dass sie robust sind. Dies hilft Dir, fehlerhafte Ergebnisse zu vermeiden.
1. Wie kann ich das Skript anpassen, um Sonderzeichen zu berücksichtigen?
Du kannst den Select Case
-Block im VBA-Code anpassen, um auch Sonderzeichen zu erkennen und im Fall eines Treffers eine entsprechende Meldung anzuzeigen.
2. Funktioniert das Skript in allen Excel-Versionen?
Ja, das Skript sollte in den meisten modernen Excel-Versionen funktionieren, solange Du VBA unterstützt.
3. Gibt es eine Möglichkeit, die Position des ersten Zeichens ohne VBA zu finden?
Ja, Du kannst die Funktionen FINDEN
oder WECHSELN
in Excel verwenden, um die Position zu ermitteln.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen