würde gern den den linken teil eines strings, der durch ein leerzeichen getrennt ist "herauslösen" und
ihn dann in eine zahl verwandeln.
mit dieser formel ist es nicht möglich, weil SEARCH im vba-code nicht geht
=LEFT(M7;SEARCH("";M7))/G7
danke
Sub Test()
MsgBox Val("123 ABC")
End Sub
Um einen String ab dem Leerzeichen in Excel VBA zu trennen, kannst du die Funktion INSTR
verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
Öffne den VBA-Editor: Drücke ALT + F11
, um den VBA-Editor zu öffnen.
Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul
.
Füge den folgenden Code ein:
Sub StringAbLeerzeichen()
Dim str As String
Dim position As Integer
Dim teilstring As String
str = "123 ABC" ' Dein Beispielstring
position = InStr(str, " ") ' Finde die Position des Leerzeichens
If position > 0 Then
teilstring = Left(str, position - 1) ' Extrahiere den Teilstring
MsgBox "Der linke Teil des Strings ist: " & teilstring
Else
MsgBox "Kein Leerzeichen gefunden."
End If
End Sub
Führe das Makro aus: Du kannst das Makro mit F5
oder über das Menü Ausführen
ausführen.
Mit diesem Code wird der linke Teil des Strings ab dem ersten Leerzeichen extrahiert. Du kannst den teilstring
dann weiter verarbeiten, um ihn in eine Zahl umzuwandeln.
Problem: Der Code gibt eine Fehlermeldung zurück.
INSTR
die richtige Position finden kann.Problem: Der Teilstring wird nicht korrekt extrahiert.
InStr
ermittelst und den Left
-Befehl korrekt anwendest.Eine andere Möglichkeit, Strings ab einem Leerzeichen zu trennen, ist die Verwendung der Val
-Funktion:
Sub BeispielVal()
MsgBox Val("123 ABC") ' Gibt 123 zurück
End Sub
Diese Methode ignoriert alles nach dem Leerzeichen und gibt nur den numerischen Teil zurück. Diese Vorgehensweise ist nützlich, wenn du nur den Zahlenwert benötigst.
Hier sind einige praktische Beispiele, wie du Strings ab Leerzeichen mit Excel VBA trennen kannst:
Beispiel mit einer Zellreferenz:
Sub BeispielMitZelle()
Dim str As String
str = Range("A1").Value ' Angenommen, A1 enthält "456 DEF"
MsgBox "Der linke Teil ist: " & Left(str, InStr(str, " ") - 1)
End Sub
Beispiel mit Umwandlung in eine Zahl:
Sub UmwandlungInZahl()
Dim str As String
Dim zahl As Long
str = "789 GHI"
zahl = Val(str) ' Wandelt in Zahl um
MsgBox "Die Zahl ist: " & zahl
End Sub
Achte darauf, die Länge eines Strings
zu überprüfen, bevor du mit dem Teilen beginnst. Du kannst die Funktion Len
verwenden, um die Länge zu bestimmen.
Verwende Trim
, um überflüssige Leerzeichen vor oder nach dem String zu entfernen, bevor du die Trennung vornimmst:
Dim str As String
str = Trim(Range("A1").Value)
Experimentiere mit der Kombination von InStr
und Mid
, um flexiblere Möglichkeiten zur Bearbeitung von Strings zu schaffen.
1. Wie kann ich den rechten Teil des Strings erhalten?
Mit der Funktion Mid
kannst du den rechten Teil des Strings erhalten, indem du die Startposition nach dem Leerzeichen angibst.
2. Was ist der Unterschied zwischen Val und CInt?
Val
konvertiert einen String in einen numerischen Wert, ignoriert jedoch alles nach dem ersten nicht-numerischen Zeichen. CInt
hingegen wandelt den gesamten String in eine Ganzzahl um, wenn er nur Zahlen enthält.
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