我正在遍歷包含價格列的電子表格,其格式爲double
類型。我試圖找到電子表格中顯示的缺失值"n/a"
,但它不會讓我將其解釋爲string
類型。Excel VBA - 解釋「N/A」值
包含"n/a"
的單元格似乎是integer
類型;我怎麼讀這個?
我正在遍歷包含價格列的電子表格,其格式爲double
類型。我試圖找到電子表格中顯示的缺失值"n/a"
,但它不會讓我將其解釋爲string
類型。Excel VBA - 解釋「N/A」值
包含"n/a"
的單元格似乎是integer
類型;我怎麼讀這個?
的細胞含有#N/A通過VBA檢索作爲包含錯誤碼
一般來說其通常最好Excel單元分配給變體,因爲小區可以包含多個(雙),邏輯的變體,字符串或錯誤,你不能預先告訴單元格將包含什麼。
你可以準備你要檢查如下描述和評估包含特殊細胞的電子表格IS功能,很容易在VBA中檢查它們是否爲True
或False
。或者,您可以編寫自己的VBA函數,如下所示。
有Excel函數該檢查小區爲特殊值,例如:
=ISNA(C1)
(假設C1是檢查的小區)。如果單元格爲#N/A
,則返回True
,否則返回False
。
如果你想顯示單元格區域是否(說「C1:C17
」)具有包含#N/A
或沒有任何細胞,它可能看起來合理使用:
=if(ISNA(C1:C17); "There are #N/A's in one of the cells"; "")
可悲的是,這是不案件,它不會按預期工作。你只能評估一個單元。
然而,你可以用做間接:
=if(COUNTIF(E1:E17;TRUE)>0; "There are #N/A's in one of the cells"; "")
假設每個單元的E1
通過E17
包含ISNA
公式每個細胞檢查:
=ISNA(C1)
=ISNA(C2)
...
=ISNA(C17)
你可以通過在列上右鍵單擊並選擇隱藏列E
在Excel的上下文中隱藏菜單,因此電子表格的用戶無法看到此列。即使它們被隱藏,它們仍然可以被訪問和評估。
在VBA可以傳遞的範圍對象作爲RANGE
參數和單獨地通過使用FOR循環評估值:
Public Function checkCells(Rg As Range) As Boolean
Dim result As Boolean
result = False
For Each r In Rg
If Application.WorksheetFunction.IsNA(r) Then
result = True
Exit For
End If
Next
checkCells = result
End Function
該函數使用ISNA()函數在內部。它必須被放置在模塊內,然後可以在電子表格內使用,如:
=checkCells(A1:E5)
它返回True
,如果任何小區是#N/A
,否則False
。您必須將工作簿保存爲啓用宏的工作簿(擴展名XLSM
),並確保宏未禁用。
Excel中提供了更多的功能,如以上:
ISERROR(), ISERR(), ISBLANK(), ISEVEN(), ISODD(), ISLOGICAL(),
ISNONTEXT(), ISNUMBER(), ISREF(), ISTEXT(), ISPMT()
例如,ISERR()
檢查所有單元錯誤除了#N/A
和有用的是檢測計算誤差。
所有這些功能在內置的介紹在Excel的幫助(按F1鍵,然後輸入「IS功能」作爲解釋搜索文本)。其中一些可以在VBA中使用,有些只能用作單元宏功能。
當你用「n/a」打電話時,你想要做什麼?不知道我明白你的意思是'我怎麼讀這個'?或者你只是試圖檢查單元格是否包含缺失的值? – 2011-01-07 15:03:31