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

时间:2011-05-29 15:42:52

标签: string excel vba excel-vba type-conversion

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

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

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

3 个答案:

答案 0 :(得分:7)

如何使用新值修改DOM结构 - 以编程方式?怎么样?

您是否可以使用Format(Cell.value, "#0.0")?另请尝试Format(CDbl(Cell.Value), "#0.0")。如果这不起作用,你可以投入Replace(Value, ",", ".")吗?如果您没有使用数千个分隔符,这应该没问题。

答案 1 :(得分:3)

使用Str功能。它仅将句点.识别为有效的小数点分隔符。

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

请注意Str为数字符号保留一个前导空格。如果您不想在正数上有前导空格,只需Trim结果:

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

答案 2 :(得分:1)

@ 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