2012-07-09 8 views
5

में "# एन/ए" मान की जांच करें, मैं वीबीए के साथ एक्सेल में #N/A मान देखना चाहता हूं। तो कुछ शोध के बाद, मैं इस कोड बनाया:वीबीए में

Set MyTab = Range(name) 
If (Not IsEmpty(MyTab.value)) And (MyTab(i, j).value <> CVErr(xlErrNA)) Then 
    Call BuildRequest(False, id, MyTab, i, j) 
End If 

लेकिन जब यह MyTab(i, j).value <> CVErr(xlErrNA) पर पारित मैं एक त्रुटि 13(type error) है और मैं क्यों नहीं पाते हैं।

कोई भी मेरी मदद कर सकता है?

उत्तर

9

आप पहली बार जांच करने के लिए है कि सेल में कोई त्रुटि हो करता है जरूरत:

If IsError(MyTab(i, j).Value) Then 
    If MyTab(i, j).Value <> CVErr(xlErrNA) Then 

(# N/A, # DIV/0 !, आदि) जब तक आप त्रुटि का प्रकार जानना चाहते हो, तो आप डब्ल्यू

Dim shouldBuildRequest As Boolean 

shouldBuildRequest = Not IsEmpty(MyTab.value) 
If IsError(MyTab(i, j).Value) Then 
    shouldBuildRequest = shouldBuildRequest AND (MyTab(i, j).Value <> CVErr(xlErrNA)) 
End If 

If shouldBuildRequest Then 
    Call BuildRequest(False, id, MyTab, i, j) 
End If 
+0

+ 1 अच्छा एक :) –

+0

इसके लिए धन्यवाद :) की जांच करने के लिए। आप सिद्धार्थ रूट –

4

एक और:

If (Not IsEmpty(MyTab.value)) And (Not IsError(MyTab(i, j).value)) Then 

आप त्रुटि प्रकार की जांच करने की जरूरत है, तो आप लिख सकते हैं: रूप में अच्छी तरह से अपने परीक्षण की जगह हो सकता है त्रुटि

If CVErr(MyTab(i, j).Value) = CVErr(xlErrNA) 
+1

पीएफएफएफ .... आप हमेशा एक बेहतर तरीका खोजते हैं! ;-) – assylias

+0

मैं विलयित कोशिकाओं ("बी 6: डी 6") के लिए एक समान त्रुटि जांच करने की कोशिश कर रहा हूं, मैं नीचे दिए गए कोड का उपयोग कर रहा हूं और त्रुटि के साथ आया हूं। अगर CVErr (ws.Range ("B6")। MergeArea.Cells (1, 1)। वैल्यू) = CVErr (xlErrNA) फिर – Isu