vba - 在德国 Excel 中解析美国数字格式

标签 vba excel localization numbers

我正在创建一个 Excel 文件,帮助人们自动处理数据。在这张表中,有一些数字需要解析(并转换为其他单位等。简单的计算)。

数字采用美国格式,这意味着它们看起来像:

0,000,000.00

在德国,数字显示如下:

0.000.000,00

在 VBA 中,我实际上不知道正在使用哪个本地化版本的 Excel(德语或英语)。

问题: 是否有一种简单的方法可以将美国格式数字解析为数据类型 Double,而不管用户使用的 Excel 本地化如何?

最佳答案

一些注释。我没有更改区域设置来进行测试。

'http://msdn.microsoft.com/en-us/library/office/bb177675(v=office.12).aspx
Debug.Print Application.International(xlCountryCode) 'Excel locale
Debug.Print Application.International(xlCountrySetting) 'Windows locale
sDecimal = Application.International(xlDecimalSeparator)
sThousand = Application.International(xlThousandsSeparator)

sNumber = "1,000,000.00"

If sThousand <> "," Then
    If sDecimal <> "." Then
        sNumber = Replace(sNumber, ",", "")
        sNumber = Replace(sNumber, ".", sDecimal)
    End If
End If

Debug.Print sNumber

关于vba - 在德国 Excel 中解析美国数字格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13286444/

相关文章:

vba - 要在 VBA Excel 中评估的 Sumproduct

excel - 如何使用Excel宏模块格式化Excel电子表格单元格?

vba - 为什么 Option Explicit 没有捕获 ReDim <未声明>?

vba - 范围 - VBA - 为什么这段代码不起作用?

mysql - 海量数据的多语言MySQL数据库结构

python - 是否可以找到或匹配两个具有不同特殊字符的名称django

javascript - ParsleyJS - 使用 data-parsley -`constraint` -message 进行本地化

ms-access - 从 VBA 查询 Access

vba - 如何获取网页<form>标签内的元素?

c# - 如何根据 UsedRange 剪辑 ExcelReference?