PDA

Vollständige Version anzeigen : String to Zahl


florena
28.06.2014, 13:36
Hallo Cracks,

ich habe eine Frage. Ich habe folgenden Code.

Dim s as string
s = "1.548"


Jetzt möchte ich s zu einer Zahl konvertieren, ich bekomme immer 1,548 (ich brauche aber den Punkt) oder die Nachkommazahlen gehen flöten.

Wie kann ich das lösen?

Vielen Dank und viele Grüße
Florena

Hajo_Zi
28.06.2014, 13:43
Dim s as Double
s = 1.548

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

florena
28.06.2014, 13:56
s liegt als string vor, und ich muss es konvertieren.

Hajo_Zi
28.06.2014, 14:02
ich konnte aus dem Beitrag nur sehen das S definiert wird und danach zugewiesen wird. Mehr hast Du uns nicht mitgeteilt, da Du die Lösung selber an Deine Bedingungen anpassen wolltest. Dann mach es auch.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

florena
28.06.2014, 14:06
Also ich habe einen string, der enthält eine Zahl, z.B. "1.567", diesen string muss ich konvertieren.

Meine Frage: geht so etwas?

Wer hat einen Tipp?

Ich komme auf keine Lösung, sonst würde ich hier auch nicht posten.

Danke Euch!

hary
28.06.2014, 14:12
Moin
Meinst du so?
Dim s As String
s = "1.548"
With Cells(1, 1) 'eintrag in A1
.NumberFormat = "@"
.Value = s
End With
kommt dann raus:
<br/><br/>
<b><em>Tabelle1</em></b><table border="1" cellspacing="0" cellpadding="0" style="border-color:#000000; border-width: 1px; font-size:11pt; background-color:#ffffff; padding-left:2pt; padding-right:2pt; "><colgroup><col style="font-weight:bold; width:40px;" /><col style="width:97px;" /><col style="width:97px;" /></colgroup><tr style="background-color:#99CCFF; text-align:center; font-weight:bold; "><td>&nbsp;</td><td>A</td><td>B</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">1</td><td style="color:#000000; background-color:#FFFFFF ;; text-align:right; ">'1.548</td><td style="color:#000000; background-color:#FFFFFF ;; text-align:right; ">1548,1</td></tr></table><br/><table border="1" cellspacing="0" cellpadding="0" style="border-color:#000000; border-width: 1px;font-size:11pt; background-color:#ffffff; width:800px;padding-left:2pt; padding-right:2pt; "><tr style="background-color:#FFCC66; text-align:center; font-weight:bold; "><td colspan="3" > verwendete Formeln </td><td> </td></tr><tr valign="top" style="background-color:#FFCC66; text-align:center; font-weight:bold; "><td> Zelle </td><td> Formel</td><td> Bereich </td><td>R1C1 für Add In</td></tr><tr><td>B1</td><td>=A1+0,1</td><td>&nbsp;</td><td>&nbsp;=RC[-1]+0.1</td></tr></table><br/><a href='http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip' >http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip</a><br/><a href='http://Hajo-Excel.de/tools.htm' >http://hajo-excel.de/tools.htm</a><br/>XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007<br/>Add-In-Version 14.02 einschl 64 Bit<br/>
gruss hary

florena
28.06.2014, 14:18
Hallo zurück,

nein ich lese aus einer Datei ein, darum der String.

Alternativ habe ich jetzt ein Array angelegt:

Dim aDimensions(26, 2) As Double
aDimensions(0, 1) = 1.495
aDimensions(0, 2) = 1.495

aber im Debug-Modus erscheint dann immer 1,495!!!

Ich brauche den Wert, um in Powerpoint den .ScaleHeight Factor:=1.495, RelativeToOriginalSize:=False eines Shapes zu setzen.

Da muss also ein Punkt stehen!

Ich möchte kein ","!!! Da komme ich auch nicht weiter???

RPP63neu
28.06.2014, 15:48
Hallo!

Ich schätze mal, dass der Debug.Print länderspezifisch ist.
Dim FaktorHoehe as Double
FaktorHoehe = 1.495
'ohne den Rest:
.ScaleHeight Factor:=FaktorHoehe
... und der Punkt bezieht sich auf eine With-Anweisung ...
Gruß, Ralf

daolix
28.06.2014, 16:00
hallo

ggf. so:
.ScaleHeight Factor:=cdbl(replace(s, ".", ","))

oder
.ScaleHeight Factor:=val(s)

GMG-CC
28.06.2014, 16:18
Moin,

ich bin der festen Überzeugung, dass du es noch nicht wirklich ausprobiert hast. Natürlich geht es mit einem im DebugModus angezeigten Komma. Probiere dieses:
Option Explicit

Sub Excel_luegt()
Dim str As String, dbl As Double
str = "1.495"
dbl = CDbl(Replace(str, ".", ","))
Debug.Print dbl
Debug.Print dbl * 2
MsgBox dbl = 1.495
End Sub

florena
28.06.2014, 17:01
Danke, es hat funktioniert!!