在Excel VBA中使用numbervalue将美国数字转换为欧洲格式

时间:2018-04-08 18:35:40

标签: excel vba numbers format

在Excel上,我有一个包含美国格式数字的专栏(例如:1.536962890625000000e + 03),我想要实现一个VBA宏,将它们放入欧洲格式(例如:1,536962890625000000e + 03)。

通常,我只是在Excel中使用替换向导来替换"。"用","但这次我有很多数据要继续,我想使用VBA宏。

但是,当我将替换方法与VBA宏一起使用时,我认为它不会将标点符号后的数字视为小数,因为我得到了很大的数字(例如:1,53696289062500E + 21)。

经过一番挖掘后,我发现了 NumberValue 公式应该可以解决这个问题,我想在我的宏中使用它。

是否有一种简单/优雅的方式来转换"我的专栏中的美国数字是欧洲的?

3 个答案:

答案 0 :(得分:0)

for方法对我有效

Dim lrow As Long
        lrow = Worksheets("Worksheet1").Cells(Rows.Count, 1).End(xlUp).Row
        Dim n As Integer

        For n = 2 To lrow
        v = Worksheets("Worksheet1").Cells(n, 1).Value
        Worksheets("Worksheet1").Cells(n, 1) = v
        Next n

答案 1 :(得分:0)

如果要为工作簿更改它,并使值保留其数字特征:

With Application
    .DecimalSeparator = ","
    .ThousandsSeparator = "."
End With

答案 2 :(得分:0)

只需更改选项中的小数点分隔符:

enter image description here

在:

enter image description here

之后:

enter image description here