如何检查单元格是否格式化为货币?

时间:2013-01-15 21:32:53

标签: excel vba excel-2010

我正在开展一个项目,需要检查大量单元格是否符合多项标准。

我已经能够使用下面的代码来检查单元格是否包含数字格式的值。但是,我还需要一种方法来检查单元格是否包含格式为US Currency的值。

If Not Application.WorksheetFunction.IsNumber(Range(StringColumn & StringRow).Value) Then  
    MsgBox "Test Failed at " & StringColumn & StringRow  
    Exit Sub  
Else: MsgBox "Valid format for cell " & StringColumn & StringRow  
End If

StringColumn和StringRow是提供单元格引用的变量。

感谢您的帮助。谢谢!

2 个答案:

答案 0 :(得分:2)

假设您使用$作为货币,可以尝试:

Dim strFormat as String

strFormat = Range(StringColumn & StringRow).NumberFormat

If InStr(1,strFormat,"$") = 0 Then  'not a currency format

    MsgBox "Test Failed at " & StringColumn & StringRow  
    Exit Sub  

Else: MsgBox "Valid format for cell " & StringColumn & StringRow  

End If

如果您有其他货币,请将$替换为您的货币符号。

答案 1 :(得分:2)

您还可以使用等效的公式 =CELL("format",A1) 对于货币或会计格式,以C开头

MsgBox Left$(Evaluate("CELL(""Format"",A1)"), 1) = "C"