Konvertieren Sie Text in Zahlen in Microsoft Excel VBA

Bilal Shahid 21 Juni 2023
  1. Konvertieren Sie Text in Zahlen in VBA
  2. Methode 1: Ändern Sie .NumberFormat in Allgemein
  3. Methode 2: Verwenden Sie die Funktion CSng()
  4. Methode 3: Zellenwert mit 1 multiplizieren
  5. Abschluss
Konvertieren Sie Text in Zahlen in Microsoft Excel VBA

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.

Beispieldaten

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:

Ändern Sie NumberFormat in Allgemein

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.

Beispieldaten

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:

Verwenden Sie die CSng-Funktion

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:

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!

Bilal Shahid avatar Bilal Shahid avatar

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