मेरे पास निम्नलिखित मैक्रो है जो प्रत्येक सेल को एक निर्दिष्ट कॉलम में पुनरावृत्त करता है। यदि सेल में स्ट्रिंग का मान है #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 - धन्यवाद दोस्त, एक संपादन किया। हां, मेरा मतलब था
—
Joseph
"0"
और हटा दिया गया Set wks = ActiveSheet
क्योंकि यह अनावश्यक था।
@WernerHenze - धन्यवाद दोस्त, संपादित पोस्ट।
—
Joseph
@ क्या - फिर से धन्यवाद, मैं मॉड्यूल 10 का उपयोग करने पर एक नज़र डालूंगा। मैं जिस डेटासेट का उपयोग कर रहा हूं, उसमें कष्टप्रद हैं
—
Joseph
*
प्रतीक जो पहले आते हैं #VALUE!
पसंद *#VALUE!
(यह मेरा डेटासेट नहीं है इसलिए सुनिश्चित नहीं है कि वे वहां कैसे पहुंचे)। इसलिए मैंने इस्तेमाल क्यों किया InStr
।
यदि आपको या तो जाँच करने की आवश्यकता है, तो आप IsNumeric () पर विचार करना चाह सकते हैं techonthenet.com/excel/formulas/isnumeric.php
—
Dave