货币检查是欧元还是美元

时间:2015-05-01 14:12:16

标签: excel vba excel-vba format

我想编写一个子程序,用于检查单元格中的值是否格式化为货币,然后检查该货币是否为€或其他任何货币。 根据结果​​,应该提示用户输入Box输入给定货币与欧元之间的实际汇率。然后子做一些数学计算,并将计算出的€值格式化为€的货币回到单元格中。

仔细观察我发现想法在单元格值上使用.NumberFormat,然后使用InStr(1, cellValue, "€") = 0检查它是否为欧元货币。

现在我使用德语版的Excel,并使用Debug.Print Range("A1").NumberFormat进行简短测试,即可得到#,##0.00 $。因此,即使我的Excel显示了€作为货币,VBA也会给我$。

我该如何解决这个问题?我假设#,##0.00 $是Excel的后端逻辑,而它使用标准语言作为其前端逻辑并根据所选语言显示货币?

1 个答案:

答案 0 :(得分:3)

您可以使用 .Text 属性而不是 .Value 属性来获取货币符号:

Sub MoneyCheck()
    Dim st As String
    st = ActiveCell.Text
    ch = Left(st, 1)
    If ch = "$" Then
        MsgBox "Dollars"
    ElseIf ch = "€" Then
        MsgBox "Not Dollars"
    End If
End Sub