【问题标题】:How to check if cell is formatted as Currency?如何检查,如果单元格的格式为货币?
【发布时间】:2012-12-30 02:50:47
【问题描述】:

我正在做一个项目,需要检查大量单元格是否满足多个条件。

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

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

感谢您的帮助。谢谢!

【问题讨论】:

    标签: excel vba excel-2010


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!我总是忘记使用 Evaluate() 可以做多少事情。在这种情况下,第一个答案更有帮助,因为它可以让我区分货币和会计。
    【解决方案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
    

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

    【讨论】:

    • 效果很好 - 谢谢!此外,事实证明我混合了货币和会计格式,我发现我可以使用“_($”代替“$”来表示会计。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    相关资源
    最近更新 更多