Hallo,
in einer Beispiel-Tabelle wurden einige Zahlen eingetragen:
-700,000 |
-800,010 |
1.635,000 |
700,000- |
34,000 |
In Excel wurden die Zellen alle mit dem Anzeige-Typ "#.##0,000" formatiert.
Wenn diese Zahlen mit dem nachstehenden Code ausgelesen werden, ...
Sub TEST()
Dim strValue As String, strText As String, iRow As Integer
For iRow = 1 To 5
strValue = Cells(iRow, 1).Value
strText = Cells(iRow, 1).Text
Debug.Print strValue, strText
Next
End Sub
... erhält man folgende Ausgabe:
-700 -700,000
-800,01 -800,010
1635 1.635,000
700,000- 700,000-
34 34,000
Wie mnan sehen kann, enthält die Zell-Eigenschaft "Text" immer die Darstellung, wie Excel einen Wert auch tatsächlich anzeigt.
In der Eigenschaft "Value" wird der Wert zurückgegeben, wie dieser unformatiert gespeichert ist. Hier werden keine Tausenderpunkte ausgegeben. Leider wird das Kommata gemäß der Landeseinstellungen zurückgegeben. Um einen "." als Kommata zu erhalten kann daher ein simpler Replace-Befehl eingesetzt werden:
Sub TEST()
Dim strValue As String, strText As String, iRow As Integer
For iRow = 1 To 5
strValue = Cells(iRow, 1).Value
strText = Cells(iRow, 1).Text
strValue = Replace(strValue, ",", ".")
Debug.Print strValue, strText
Next
End Sub
Ausgabe:
-700 -700,000
-800.01 -800,010
1635 1.635,000
700.000- 700,000-
34 34,000
Vielleicht helfen diese Infos weiter?
LG, BigBen
|