如何在Excel中将string转换为数字,反之亦然

我有一些XML文件,其中包含以“。”存储的十进制数字。 作为小数分隔符。 我创build了用于在该XML中编辑数据的Excel工作簿。 MSXML用于从XML读取数据,然后显示在工作表中。 数据存储完成后,我使用从表中读取的新值来修改DOM结构,并保存XML。

问题是,当我将十进制数字转换回string时,将它们保存为XML中的值时,将使用用户在Windows区域设置中指定的十进制分隔符。

我需要一种方法来强制存储与“。”的十进制数字。 作为所有情况下的小数分隔符。 这可能吗?

你如何用新的值修改DOM结构 – 编程? 怎么样?

是否可以使用Format(Cell.value, "#0.0") ? 也请尝试Format(CDbl(Cell.Value), "#0.0") 。 如果这不起作用,你可以放一个Replace(Value, ",", ".") ? 如果您不使用千位分隔符,这应该是好的。

使用Str函数。 它只承认时期. 作为有效的小数点分隔符。

 Dim d as Double Dim s as String d = 3.25 s = Str(d) ' s is now " 3.25" 

请注意, Str为数字的符号保留了一个前导空间。 如果你不想在你的正数上占上领先的位置,只需修改结果:

 s = Trim(Str(d)) ' s is now "3.25" 

@ Jean-Francois因为我们在谈论i18n你应该使用CStr (用于国际应用程序)函数而不是Str (其中.dot是浮点数的分隔符,在逗号不是用法语,逗号是分隔符ex:7,54 )

 Sub myFunction() Dim num As Double Dim str As String num = 3.251 str = CStr(num) ' convert a number into a String num = Val(str) ' convert a String into an integer num = Trim(str) ' convert a String into a Variant str = Trim(num) ' notice this works the other way around End Sub