Konvertieren Sie Text in Zahlen in Microsoft Excel VBA
- Konvertieren Sie Text in Zahlen in VBA
-
Methode 1: Ändern Sie
.NumberFormat
inAllgemein
-
Methode 2: Verwenden Sie die Funktion
CSng()
- Methode 3: Zellenwert mit 1 multiplizieren
- Abschluss
VBA ist eine Programmiersprache für Microsoft-Excel-Anwendungen, die Benutzern verschiedene Funktionen und Features zur Verfügung stellt. In diesem Artikel lernen wir verschiedene Methoden kennen, um Textdaten in numerische Form umzuwandeln.
Konvertieren Sie Text in Zahlen in VBA
Es kann eine Situation geben, in der Sie eine arithmetische Formel auf Excel-Daten anwenden möchten, dies aber nicht tun können.
Denn die Nummern können in Textform hinterlegt werden! Dieser Artikel hat die Lösung für dieses Problem.
Wir wissen, wie man Zahlen einfach mit der Funktion CStr()
in Text umwandelt. Wenn wir jedoch das Gegenteil tun möchten, d. h. Text in Zahlen umwandeln, haben wir mehrere Möglichkeiten, dies mit VBA zu tun.
In diesem Artikel werden wir uns verschiedene Konvertierungsmethoden und einige Beispiele ansehen, um zu verstehen, wie diese Methoden funktionieren.
Methode 1: Ändern Sie .NumberFormat
in Allgemein
Bei der ersten Methode wählen wir die Zellen aus, indem wir den Bereich angeben und das Datenformat von Text
auf Allgemein
ändern und dann die Werte der Zahlen festlegen.
Hier ist der generische Code dafür:
[X:Y].Select
With Selection
.NumberFormat = "General"
.Value = .Value
End With
Dabei steht X:Y
für den Bereich der Zellen. In MS Excel stehen uns verschiedene Zahlenformate zur Verfügung, wie Allgemein
, Währung
, Buchhaltung
, Text
usw.
Das Format Allgemein
behält die eingegebene Nummer bei.
Beispielsweise wird 22
als 22
oder 10.02
als 10.02
beibehalten. Die Anweisung .Value = .Value
ruft die Werte der Zellen ab und setzt sie, die jetzt im Zahlenformat vorliegen.
Als Ergebnis liegen die Daten des ausgewählten Bereichs nun in Zahlenform vor, die aus dem Text konvertiert wurde. Sehen wir uns ein Beispiel an, um die Verwendung dieser Methode weiter zu verdeutlichen.
Angenommen, wir haben die folgenden Beispieldaten anfänglich in unserer Excel-Tabelle.
Hier ist der Code, um die Daten in Textform in numerische Form umzuwandeln:
Sub method1()
[A1:A7].Select
With Selection
.NumberFormat = "General"
.Value = .Value
End With
End Sub
Ausgang:
In diesem Beispiel hatten wir die Zahlen 1-7
in Textform. Nach dem Ausführen des oben angegebenen VBA-Codes änderten sich die Daten von der Textform in die Zahlenform.
Methode 2: Verwenden Sie die Funktion CSng()
Die zweite Methode kann alle numerischen Werte im Blatt finden, auch wenn die Werte als Text formatiert sind. Anschließend werden diese Daten mit der Funktion CSng()
in einen einzigen (gemeinsamen) Datentyp konvertiert.
Hier ist der generische Code für diese Methode:
For Each r In Sheets("SheetName").UsedRange.SpecialCells(xlCellTypeConstants)
If IsNumeric(r) Then
r.Value = CSng(r.Value)
r.NumberFormat = "0.00"
End If
Next
Hier wählt Sheets("SheetName").UsedRange
alle verwendeten Zellen aus dem Blatt aus. SheetName
ist der Name Ihrer Excel-Tabelle.
Die Funktion IsNumeric()
identifiziert alle Daten, die als Zahl ausgewertet werden können. Es ist eine Funktion vom Typ Boolean und gibt True
oder False
zurück.
Der Code überprüft jede Zelle einzeln, und wenn Daten erkannt werden, die als Zahl ausgewertet werden können, wird ihr Datentyp zuerst auf einen einzelnen (gemeinsamen) Datentyp und dann auf das Format 0.00
gesetzt. Das bedeutet, dass alle Zellen, die Daten enthalten (und als Zahlen ausgewertet werden können) nun einen gemeinsamen Datentyp mit dem Format 0.00
haben.
Daher wurden die Daten nun in Zahlen umgewandelt. Lassen Sie uns anhand eines Beispiels sehen, wie der Code funktioniert.
Wir verwenden die gleichen Beispieldaten wie im vorherigen Beispiel.
Hier ist der Code zum Konvertieren von Text in Zahlen mit der Funktion CSng()
:
Sub method2()
For Each r In Sheets("Sheet1").UsedRange.SpecialCells(xlCellTypeConstants)
If IsNumeric(r) Then
r.Value = CSng(r.Value)
r.NumberFormat = "0.00"
End If
Next
End Sub
Ausgang:
In diesem Beispiel identifiziert die Funktion IsNumeric()
alle Zellen, in denen Daten als Zahlen ausgewertet werden können, und diesen Zellen (von A1
bis A7
) wird nun ein gemeinsamer Typ zugewiesen, also das Format 0.00
oder Zahlenform.
Methode 3: Zellenwert mit 1 multiplizieren
Diese Methode ist nur eine Problemumgehung und bietet einen Shortcut-Trick, um Text in numerische Form umzuwandeln. Die Aufgabe, die Sie bei dieser Methode erledigen müssen, ist einfach: Multiplizieren Sie jeden Wert in der Zelle mit 1
.
Dadurch werden die Textdaten in numerische Form umgewandelt, ohne den tatsächlichen Wert der Daten zu ändern, da die Multiplikation mit 1
keine numerische Änderung bringt und das Datenformat aufgrund einer mathematischen Operation implizit in Zahlen geändert wird.
Wir haben folgende Beispieldaten:
Hier ist der Code zum Konvertieren von Text in Zahlen durch Multiplizieren mit 1:
Sub method4()
For Each r In Sheets("Sheet1").UsedRange.SpecialCells(xlCellTypeConstants)
If IsNumeric(r) Then
r.Value = r.Value * 1
End If
Next
End Sub
Abschluss
Die Konvertierung von einem Datentyp in einen anderen ist praktisch, wie das Konvertieren von Zahlen aus Textform in Zahlenform, damit wir arithmetische Operationen auf die Daten anwenden können.
In diesem Artikel haben wir verschiedene Methoden besprochen, um Text
in Zahl
umzuwandeln. Wir haben auch verschiedene Beispiele besprochen, um unsere Konzepte zu verdeutlichen und zu verstehen, wie die Methoden funktionieren.
Wir hoffen, dass Sie dieses Konzept lernen konnten. Lerne weiter!
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub