Ich möchte einen String AUsdruck in eine Zahl (Long) umwandeln. Der Inhalt der Zelle sieht so aus
Zelle1: z.B 1,2 (Gleitkommazahl)
Jetzt möchte ich das mein Programm das auch als 1,2 erkennt.
Über Hilfe wáre ich dankbar.
Philipp
Um einen String in eine Long-Zahl in Excel VBA umzuwandeln, kannst Du folgende Schritte befolgen:
Ö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" und wähle "Einfügen" > "Modul".
Füge den folgenden Code ein:
Option Explicit
Sub StringToLong()
Dim StWert As String
Dim LongWert As Long
StWert = "123" ' Hier kannst Du Deinen String eingeben
LongWert = StWert * 1 ' String in Long umwandeln
MsgBox "Der Long-Wert ist: " & LongWert
End Sub
Führe das Makro aus: Drücke F5, um das Makro auszuführen und den Long-Wert anzuzeigen.
Mit dieser Methode kannst Du einen Excel-String in eine Long-Zahl umwandeln, indem Du einfach die Multiplikation mit 1 nutzt, um den Datentyp zu konvertieren.
Fehler: Typenkonflikt: Wenn Du versuchst, einen String, der nicht in eine Long-Zahl konvertiert werden kann, zu verwenden, erhältst Du einen Typenkonflikt. Stelle sicher, dass der String nur Zahlen enthält.
Lösung: Verwende die Funktion CInt() oder CLng(), um sicherzustellen, dass die Umwandlung korrekt erfolgt.
LongWert = CLng(StWert) ' Konvertiere den String in Long
Fehler: Dezimalzahlen: Wenn Du mit Gleitkommazahlen arbeitest, solltest Du den Datentyp Double verwenden, da Long nur für Ganzzahlen geeignet ist.
Es gibt verschiedene Möglichkeiten, einen String in einen Long-Wert umzuwandeln:
Verwendung von CInt() oder CLng(): Diese Funktionen helfen, den String direkt in einen Long-Wert umzuwandeln.
LongWert = CInt(StWert) ' Für Ganzzahlen
LongWert = CLng(StWert) ' Für Long-Werte
Direkte Zuweisung: Wenn Du sicher bist, dass der String nur Ganzzahlen enthält, kannst Du ihn direkt einer Long-Variablen zuweisen:
LongWert = StWert ' Funktioniert nur, wenn StWert ein gültiger Long-Wert ist
Hier sind einige Beispiele für die Umwandlung von Strings in Long-Werte:
Beispiel für eine einfache Umwandlung:
Dim StWert As String
Dim LongWert As Long
StWert = "456"
LongWert = CInt(StWert)
MsgBox "Umgewandelter Wert: " & LongWert
Umwandlung mit Fehlerbehandlung:
Dim StWert As String
Dim LongWert As Long
On Error GoTo Fehlerbehandlung
StWert = "789"
LongWert = CLng(StWert)
MsgBox "Umgewandelter Wert: " & LongWert
Exit Sub
Fehlerbehandlung:
MsgBox "Fehler bei der Umwandlung!"
Option Explicit: Dies zwingt Dich, alle Variablen zu deklarieren, wodurch Fehler reduziert werden.1. Kann ich einen String mit Dezimalzahlen in Long umwandeln?
Nein, Long kann nur Ganzzahlen speichern. Verwende stattdessen den Typ Double.
2. Was passiert, wenn der String nicht in eine Zahl umgewandelt werden kann?
Du erhältst einen Laufzeitfehler. Stelle sicher, dass der String nur gültige Zahlen enthält.
3. Wie kann ich sicherstellen, dass meine Umwandlungen immer funktionieren?
Nutze Fehlerbehandlungsroutinen und überprüfe die Eingabewerte, bevor Du die Umwandlung durchführst.