2013-01-15 91 views
1

我正在開發一個項目,需要檢查大量單元是否滿足一些標準。如何檢查單元格是否格式化爲貨幣?

我已經能夠使用下面的代碼來檢查單元格是否包含數值格式的值。但是,我還需要一種方法來檢查單元格是否包含格式爲美國貨幣的值。

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

假設你正在使用$爲您的貨幣,你可以試試這個:

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

偉大工程 - 謝謝!此外,事實證明,我有一個貨幣和會計格式的組合,我發現我可以使用「_($」代替「$」作爲會計 – JAGAnalyst

2

您還可以使用相當於與C開始對貨幣或會計格式公式 =CELL("format",A1)

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

謝謝!我總是忘記Evaluate()可以完成多少工作。在這種情況下,第一個答案更有幫助,因爲它讓我區分貨幣和會計。 – JAGAnalyst