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

我正在研究一个需要检查大量单元格是否符合许多标准的项目。

我已经能够使用下面的代码来检查单元格是否包含数值格式的值。 不过,我也需要一种方法来检查一个单元格是否包含格式化为美元货币的值。

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是提供单元格引用的variables。

你的帮助表示赞赏。 谢谢!

假设你使用$作为你的货币,你可以试试这个:

 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 

如果您有其他货币,请用您的货币符号replace$

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

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