我正在开展一个项目,需要检查大量单元格是否符合多项标准。
我已经能够使用下面的代码来检查单元格是否包含数字格式的值。但是,我还需要一种方法来检查单元格是否包含格式为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是提供单元格引用的变量。
感谢您的帮助。谢谢!
答案 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)
您还可以使用vba等效的公式
=CELL("format",A1)
对于货币或会计格式,以C
开头
MsgBox Left$(Evaluate("CELL(""Format"",A1)"), 1) = "C"