Inhaltsverzeichnis
In diesem Artikel werden wir verschiedene Methoden zur Konvertierung von Zeichenfolgen in Zahlen in Excel VBA besprechen. Wir werden sehen, wie Sie die integrierten Funktionen verwenden und eine benutzerdefinierte Funktion erstellen können, um Zeichenfolgen in Zahlen zu konvertieren, mit VBA-Codebeispielen.
Download Arbeitsbuch Praxis
Laden Sie dieses Übungsheft herunter, um zu üben, während Sie diesen Artikel lesen.
String in Zahl umwandeln.xlsm3 Möglichkeiten zum Konvertieren von Zeichenfolgen in Zahlen in Excel VBA
1. Konvertieren einer Zeichenkette in eine Zahl mithilfe von Typkonvertierungsfunktionen
Excel bietet mehrere integrierte Typumwandlungsfunktionen Wir können sie in unserem VBA-Code verwenden, um auf einfache Weise vom Datentyp String in verschiedene Datentypen zu konvertieren.
1.1 String zu Integer
Umrechnen String zu Ganzzahl können wir die CInt-Funktion in unserem Code. CInt-Funktion dauert nur ein Argument und das sollte ein numerischer Wert Probieren wir den folgenden Code im Visual Code Editor aus.
Sub StringToNumber() MsgBox CInt(12.3) End Sub
Presse F5 zu laufen. die Code Die Ausgabe wird in der Tabelle angezeigt. MsgBox .
Die Funktion CInt umgewandelt die numerische Zeichenfolge Wert ("12.3" ) zu einer Ganzzahl 12.
Um mehr zu verstehen über die CInt-Funktion führen Sie den folgenden Code im Code-Editor aus und beobachten. die Ergebnisse .
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CInt(Cells(i, 2)) Next End Sub
Die Ausgabe ist hier im Folgenden Bildschirmfoto .
Code Erläuterung
In diesem Code haben wir die For...Nächste Schleife zur Anwendung der CInt-Funktion auf den Strings der Zellen B3:B7. Die Ausgänge werden in Zellen gedruckt C3:C7. Wir haben die Funktion der Zellen um die Eingabewerte zu spezifizieren und anzugeben, wo die Ausgabewerte gedruckt werden sollen.
Ergebnisse
Die Funktion CInt umgerechnet 25,5 zum nächste ganzzahlige Zahl 26 Andererseits ist es umgerechnet 10,3 zu 10, nicht 11 Wenn ein dezimaler numerischer Wert kleiner als 0,5 ist, rundet die Funktion auf dieselbe Zahl ab. Aber die dezimal numerische Zeichenkette in den Wert nächste Ganzzahl Nummer, wenn es sich um gleich oder größer als 0,5.
Hinweis
Der Integer-Wert hat einen Bereich zwischen -32,768 zu 32,767 Wenn wir einen numerischen Wert eingeben, der Außerhalb dieses Bereichs zeigt Excel eine Fehler .
1.2 String zu Long
Die CLng-Funktion konvertiert einen numerischen String-Wert in einen langer Datentyp Sie funktioniert ähnlich wie die Funktion CInt. Der Hauptunterschied liegt in ihrer Bereich die sich zwischen -2,147,483,648 und 2,147,483,647.
Der auszuführende Code ist hier unten zu finden: Sub StringToNumber() For i = 3 To 9 Cells(i, 3).Value = CLng(Cells(i, 2)) Next End Sub
Hier werden die Zellen B3:B9 enthalten einige numerischer String-Wert und umgewandelt l große Zahlen sind in Zellen C3:C9. Die CLng-Funktion umgewandelt -32800 und 32800 erfolgreich zu lange Nummern die die CInt-Funktion nicht. Aber es wird auch eine Fehler wenn die Eingabe numerischer Wert ist außerhalb der Reichweite.
1.3 String zu Dezimal
Die Verwendung des CDec-Funktion können wir konvertieren a numerischer String-Wert zu einer Dezimal-Datentyp: Lauf den folgenden Code zu konvertieren die numerische Werte in Zellen B3:B7 zum Dezimaler Datentyp.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CDec(Cells(i, 2)) Next End Sub
1.4 String zu Single
In diesem Beispiel wandeln wir die Eingabezeichenfolgen in einzelner Datentyp (Gleitkommazahlen mit einfacher Genauigkeit). Dazu müssen wir die CSng-Funktion .
Der einzelne Datentyp reicht- (i) -3,402823E38 zu -1.401298E-45 für negativ Zahlen.
(ii) 1.401298E-45 zu 3.402823E38 für positiv Zahlen.
Führen Sie den folgenden Code im Visual Basic-Editor aus.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub
In der Ausgabe werden die Zellen B3:B9 enthalten einige numerischer String-Wert, und umgewandelte Zahlen vom einfachen Datentyp sind in Zellen C3:C9. Aber es wird auch eine Fehler wenn die Eingabe numerischer Wert ist außerhalb der Reichweite.
1.5 String zu Double
In diesem Beispiel wandeln wir die Eingabezeichenfolgen in Double-Datentyp (double-precision floating-point) Zahlen. Dazu müssen wir die CDbl-Funktion .
Der Double-Datentyp reicht- (i) -1,79769313486231E308 zu -4.94065645841247E-324 für negativ Zahlen.
(ii) 4.94065645841247E-324 zu 1.79769313486232E308 für positiv Zahlen.
Führen Sie den folgenden Code im Visual Basic-Editor aus.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub
In der Ausgabe werden die Zellen B3:B9 enthalten einige numerischer String-Wert und umgewandelte Zahlen des Datentyps double sind in Zellen C3:C9. Aber es wird auch eine Fehler wenn die Eingabe numerischer Wert ist außerhalb der Reichweite.
1.6 String zu Währung
Die Währungsdatentyp ist praktisch, wenn die Berechnungen sich auf Geld Außerdem, wenn wir mehr Genauigkeit in fest - Punkt Berechnung ist die Verwendung des Datentyps Währung eine gute Wahl. Wir müssen die CCur-Funktion um eine Zeichenkette in eine Währungsdatentyp Der Datentyp Bereiche von -922,337,203,685,477.5808 zu 922,337,203,685,477.5808.
Code für konvertieren numerischer String-Wert von Zellen B3:B7 zu Währungsdatentyp in Zellen C3:C7 finden Sie hier unten.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CCur(Cells(i, 2)) Next End Sub
1.7 String zu Byte
Die CByte-Funktion konvertiert numerische String-Werte in den Byte-Datentyp die von 0 bis 255.
Code ist wie folgt :
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CByte(Cells(i, 2)) Next End Sub
In der Ausgabe werden die Zellen B3:B9 enthalten einige numerischer String-Wert, und konvertierte Zahlen vom Datentyp Byte sind in Zellen C3:C9. Aber es wird auch eine Fehler wenn die Eingabe numerischer Wert ist außerhalb der Reichweite.
Lesen Sie mehr: Konvertierung einer Zeichenkette in eine lange Länge mit VBA in Excel
Ähnliche Lektüre
- String in Excel VBA in Double umwandeln (5 Methoden)
- Wie man mit Excel VBA Text in Zahlen umwandelt (3 Beispiele mit Makros)
- Fehler beim Konvertieren in Zahlen in Excel beheben (6 Methoden)
- Wissenschaftliche Notation in Excel in Zahlen umwandeln (7 Methoden)
2. Verwendung einer benutzerdefinierten VBA-Funktion zum Prüfen und Konvertieren von Zeichenfolgen in Zahlen in Excel
In dieser Illustration werden wir eine benutzerdefinierte Funktion für die Umwandlung von Zeichenketten in Zahlen. Wir können dann verwenden. diese benutzerdefinierte Funktion in unserem Arbeitsblatt wie ein eingebaute Funktion In diesem Beispiel werden wir die CInt-Funktion zu konvertieren Zeichenketten zu Ganzzahlen bei der Erstellung des benutzerdefinierte Funktion. Wir könnten auch alle andere Funktionen beschrieben in Methode 1 zu konvertieren Zeichenketten zu verschiedene Datentypen Führen Sie dazu die folgenden Schritte aus.
Schritte:
- Hier, in den Zellen B3:B7, haben wir einige numerische Zeichenkettenwerte.
- Im Visual Basic-Editor können Sie nun kopieren. und einfügen den folgenden Code ein und drücken Sie dann Strg + S zu speichern
Function StringToNumber(inputStr) Dim convertedNum As Variant If IsNumeric(inputStr) Then If IsEmpty(inputStr) Then convertedNum = "-" Else convertedNum = CInt(inputStr) End If Else convertedNum = "-" End If StringToNumber = convertedNum End Function
- In der Zelle C3 , anfangen zu tippen die Funktionsname ( StringToNumber ). Excel wird automatisch vorschlagen die Funktion zu verwenden. Presse die Tabulator-Taste um die Funktion aufzurufen.
- Legen Sie die Zellbezug B3 als einziges Argument.
- Drücken Sie nun Eingabe nach dem Schließen der Klammern.
- Suchen Sie die Füllen Griff am rechte untere Ecke der Zelle C3 zu anwenden. die Funktion zu Zellen C4:C7.
- Die endgültige Ausgabe sind die begehrten Integer-Zahlen aus den String-Werten.
3. VBA-Code zum Konvertieren eines ausgewählten Bereichs von Zellen in Zahlen in Excel
In dieser Illustration konvertieren wir eine Bereich von ausgewählte Zellen die Zeichenkettenwerte enthalten, in ganze Zahlen umwandeln. Enthält eine Zelle eine nicht-numerisch Wert enthält, ist die Ausgabe ein Bindestrich (-) Linie stattdessen Folgen Sie der Schritte :
- Zellen auswählen B3:B6 mit numerische Zeichenfolgen Werte und B7 die eine nicht-numerisch
- In der Visual Basic-Editor kopieren. und einfügen die folgenden Code .
Sub StringToNumber() Dim convertedNum As Variant For Each cell In Selection If IsNumeric(cell) Then If IsEmpty(cell) Then convertedNum = "-" Else convertedNum = CInt(cell) End If Else convertedNum = "-" End If With cell .Value = convertedNum.HorizontalAlignment = xlCenter End With Next cell End Sub
- Drücken Sie nun F5 zu laufen. die Ausgabe wie im Folgenden dargestellt Bildschirmfoto .
Anmerkungen
- Wir haben die isNumeric-Funktion im 2. und 3. Methoden in unserem VBA-Code, der prüft, ob ein Ausdruck in eine Zahl umgewandelt werden kann.
- Unter Methode 1 haben wir integrierte Funktionen (CInt, CDbl, CSng.....) verwendet, um numerische String-Werte konvertieren zu Zahlen Aber wenn es eine nicht-numerischer Wert zeigt es eine Unstimmigkeitsfehler .
Schlussfolgerung
Jetzt wissen wir, wie man in Excel Zeichenketten in Zahlen umwandelt. Hoffentlich ermutigt Sie das, diese Funktion selbstbewusster zu nutzen. Wenn Sie Fragen oder Anregungen haben, vergessen Sie nicht, sie in das Kommentarfeld unten zu schreiben.