मूल्यों की खोज के लिए निम्नलिखित स्क्रिप्ट को कैसे बदलें और तार नहीं?


0

मेरे पास निम्नलिखित मैक्रो है जो प्रत्येक सेल को एक निर्दिष्ट कॉलम में पुनरावृत्त करता है। यदि सेल में स्ट्रिंग का मान है #VALUE!, यह इसके ऊपर और नीचे 2 कोशिकाओं के औसत द्वारा प्रतिस्थापित किया जाता है (जिसमें पूर्णांक होते हैं)।

Sub Checker()
Dim Qty As Range

For Each Qty In Range("A1:A5").Cells

    If InStr(1, (Qty.Text), "#VALUE!") Then
    Qty.FormulaR1C1 = "=AVERAGE(R[-2]C:R[-1]C,R[1]C:R[2]C)"

    End If
Next
End Sub

इसलिए:

  A                  A
1  10              1  10
2  10              2  10
3  #VALUE!   ->    3  10
4  10              4  10
5  10              5  10

अब मैं चाहूंगा कि मैक्रो की खोज की जाए 0 के बजाय #VALUE!

  A                  A
1  10              1  10
2  10              2  10
3   0        ->    3  10
4  10              4  10
5  10              5  10

कोड में मुझे क्या बदलने की आवश्यकता होगी?

बस प्रतिस्थापित कर रहा है "#VALUE!" सेवा मेरे "0" काम नहीं करता है। मेरा अनुमान इसके बजाय किसी अन्य फ़ंक्शन का उपयोग करना है InStr लेकिन मैं VBA से बहुत परिचित नहीं हूं।


"यह काम नहीं करता है" के साथ आपका क्या मतलब है? कोड क्या करता है, आप क्या उम्मीद करते हैं?
Werner Henze

@Dave - धन्यवाद दोस्त, एक संपादन किया। हां, मेरा मतलब था "0" और हटा दिया गया Set wks = ActiveSheet क्योंकि यह अनावश्यक था।
Joseph

@WernerHenze - धन्यवाद दोस्त, संपादित पोस्ट।
Joseph

1
@ क्या - फिर से धन्यवाद, मैं मॉड्यूल 10 का उपयोग करने पर एक नज़र डालूंगा। मैं जिस डेटासेट का उपयोग कर रहा हूं, उसमें कष्टप्रद हैं * प्रतीक जो पहले आते हैं #VALUE! पसंद *#VALUE! (यह मेरा डेटासेट नहीं है इसलिए सुनिश्चित नहीं है कि वे वहां कैसे पहुंचे)। इसलिए मैंने इस्तेमाल क्यों किया InStr
Joseph

1
यदि आपको या तो जाँच करने की आवश्यकता है, तो आप IsNumeric () पर विचार करना चाह सकते हैं techonthenet.com/excel/formulas/isnumeric.php
Dave

जवाबों:


2
If InStr(1, (Qty.Text), "0") Then

जाँच करेगा कि क्या वहाँ स्ट्रिंग में कहीं भी "0" है जो वह नहीं है जो आप चाहते हैं। प्रयत्न

If Qty.Text = "0" Then

या

If StrComp(Qty.Text, "0") = 0 Then

जाँच के लिए कि क्या पूरा स्ट्रिंग "0" है।

पूर्ण स्ट्रिंग की तुलना "#VALUE!" के लिए भी एक बेहतर समाधान होता। चेक।


धन्यवाद! मैंने दोनों मानों के लिए और तुलना करने के लिए स्ट्रिंग तुलना विधि को शामिल किया है "#VALUE!" =)
Joseph
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.