2017-06-29 2 views
-1

Ich habe Spalten mit exportierten Nummern, die als Text gespeichert sind.VBA - Wie konvertiert man den Wert der Zelle von einem Text in die Nummer

enter image description here

Ich habe versucht, diese Daten an Zahlen mit diesem Code zu konvertieren.

Sub FormatColumns() 
Columns(9).NumberFormat = "0" 
Columns(10).NumberFormat = "0" 
End Sub 

Es hat den Job richtig gemacht (oder scheint es so), aber ich bin immer noch mit diesen Daten zu arbeiten, wie mit Zahlen nicht in der Lage, aber Excel mir sagen, dass es als Nummer gespeichert ist.

enter image description here

Aber wenn ich es über Formel überprüfen =ISTEXT(), es zeigt mir immer TRUE

Können Sie mir dabei helfen, bitte? Alle Tutorials und Tipps, die ich bei Google gefunden habe, war über Formatierungs Zellen oder =VALUE(), aber VALUE fucntion nicht funktioniert für mich, es zeigt mir #VALUE.

Vielen Dank im Voraus!

+1

Es ist das Komma, muss' '.' 405,90' =' 405.90' –

+0

Oh daamn sein, was eine Attrappe ich bin. Danke! – Srpic

+0

Sie erscheinen nicht gelesen haben [diese] (https://stackoverflow.com/help/tagging) – pnuts

Antwort

1

Sie ersetzen muss sein "" ~~>“."

Sub FormatColumns() 
With Columns("i:j") 
    .Replace ",", "." 
    .NumberFormat = "#,###.00" 
End With 
End Sub 
+0

Toll, danke! – Srpic

+0

@Srpic: Vielen Dank! –

+0

@Srpic Und das funktioniert für Räume? (Du hast geschrieben * Es gab Leerzeichen und Kommas, die korrekt sein mussten. *) – pnuts

0

Zahlen als Text Zahlen gespeichert Konvertieren über Macro

Sub macro() 
    Range("F:F").Select 'specify the range which suits your purpose 
    With Selection 
     Selection.NumberFormat = "General" 
     .Value = .Value 
    End With 
End Sub 
+0

Leider funktioniert das in diesem Fall nicht, es gab Leerzeichen und Kommas, die stimmen mussten, aber vielen Dank für Ihren Rat, da es in anderen funktioniert – Srpic

0

Hilight die Zahlen, die Sie mit zu "reparieren" und laufen:

Sub fixNumbers() 
    With Selection 
     .NumberFormat = "General" 
     .Value = .Value 
    End With 
End Sub 
+0

Wie ich @ @ Ricks Beitrag schrieb, funktioniert es in diesem Fall nicht.Es gab Leerzeichen und Kommas, die korrigiert werden mussten.Aber vielen Dank für Ihren Rat, da es in anderen Fällen funktioniert. – Srpic

1

Eine andere Lösung ist:

Sub Macro1() 

    Range("A:A").Select 'Range of values you need converted 

    For Each Cell In Selection 
    Cell.Value = (Cell.Value * 1) 
    Next 

End Sub 

Eine nicht-vba-äquivalente Lösung besteht darin, eine "1" in eine Zelle einzugeben, diese Zelle zu kopieren und den Bereich auszuwählen, den Sie konvertieren möchten Klicken Sie mit der rechten Maustaste auf Zahlen und dann auf Einfügen Spezial -> Multiplizieren. Dies wird ohne Änderung des Formats alle Werte in diesem Bereich als Zahlen lassen

. Getestet mit ISTEXT.

Stellen Sie sicher, Ihre Einstellungen entsprechen auch mit Komma Dezimalstellen sonst ersetzen, können sie weiterhin Probleme haben.

+0

Hmm, clevere Lösung, wo die VBA nicht benötigt wird, Danke! – Srpic

1

Überprüfen Sie die gesamte relevante Region wird zuerst auf das Zahlenformat gesetzt.

Auswahl der entsprechenden Region und machen eine globale nichts von ersetzen („Raum“ auf „leer lassen“). Dann versuchen Sie je nach Ihrem Standort eine globale Ersetzung von , zu ..

Next 1 in einer Ersatzzelle eingeben, kopieren Sie die Zelle, den gesamten relevanten Bereich auswählen und einfügen, Option, Multiplizieren.

Wenn das nicht funktioniert, wechseln Sie . zurück zu , und wiederholen Sie die Paste Special.

1

Es ist das Komma, muss . so 405,90 = 405.90

Verwandte Themen