में सभी पंक्तियों का योग ढूंढें मेरे पास एक बड़ी शीट है। मुझे डायनामिक पोजिशन में कॉलम हेडर को उस शीट में कई फ़िल्टर सेट करना होगा। फ़िल्टर सेट होने के बाद, मुझे कॉलम हेडर "नवंबर" वाले शीट में विशेष कॉलम ढूंढना होगा और फिर उस कॉलम में मानों का योग प्राप्त करना होगा और उस विशेष योग मान को एक अलग वर्कशीट में आयात करना होगा। मैंने उस भाग तक कोड लिखा है जहां मैं फ़िल्टर को एकाधिक कॉलम पर सेट कर सकता हूं, लेकिन मुझे कॉलम हेडर ढूंढना और उस कॉलम को जोड़ना मुश्किल लगता है। नीचे कोड मैंने अभी तक लिखा है।वीबीए - एक विशिष्ट शीर्षलेख वाला कॉलम ढूंढें और उस कॉलम
Sub Button2_Click()
Dim colName As Long
Dim colName1 As Long
Dim colName2 As Long
Dim r As Long
SearchV = Range("A8:DD8").Find(What:="Nov", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False).Column
lastrow = Cells(Rows.Count, SearchV).End(xlUp).Row
colName = Range("A8:DD8").Find(What:="Teams", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False).Column
colName1 = Range("A8:DD8").Find(What:="Items", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False).Column
colName2 = Range("A8:DD8").Find(What:="Domain", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False).Column
ActiveSheet.Range("$A$8:$DD$9999").AutoFilter Field:=colName, Criteria1:="ST Test", Operator:=xlOr, Criteria2:=""
ActiveSheet.Range("$A$8:$DD$9999").AutoFilter Field:=colName1, Criteria1:="Variance", Operator:=xlOr, Criteria2:="(Blanks)"
ActiveSheet.Range("$A$8:$DD$9999").AutoFilter Field:=colName2, Criteria1:="9S", Operator:=xlOr, Criteria2:="(Blanks)"
स्तंभ शीर्षलेख हमेशा 8 वीं पंक्ति से शुरू होते हैं। उपरोक्त पंक्तियों में कुछ बेकार जानकारी मौजूद है। तो मैं क्या चाहता हूं, मान लीजिए कि कॉलम 'नोव' एच पंक्ति में है। योग की गणना अंतिम पंक्ति के अंत तक H9 से की जानी चाहिए। जब कॉलम 'एच' कॉलम में था तो मैंने इस सूत्र का उपयोग किया था।
Cells(lastrow + 1, colName3).Formula = "=SUBTOTAL(9,H9:H" & lastrow & ")"
लेकिन स्तंभ 'नवम्बर हमेशा पंक्ति "एच" में मौजूद नहीं होगा, तो मैं यह पता लगाने की कैसे मेरे कोड स्तंभ गतिशील रूप लेने के लिए बदलने में सक्षम नहीं हूँ।
धन्यवाद एक बहुत करते हैं अर्थ। मैं इसके साथ अपने अधिकांश काम खींचने में कामयाब रहा। लेकिन वास्तविक समस्या पंक्तियों के योग को जोड़ने के लिए प्रबंधन कर रही है। मैं अभी इस कोड का उपयोग कर रहा हूँ। 'SumV = एसवी और" 9: "' ' SumW = एसवी और lRow' ' कोशिकाओं (lRow + 1, एसवी) .Formula = "= SUBTOTAL (9, SumV: SumW)" ' लेकिन यह एक्सेल में निम्न मान लौटा रहा है "= सबबोटल (9, SumV: SumW)" और मुझे #NAME मिल रहा है? त्रुटि। –
उम्म, 'एसवी' क्या है? –
मुझे खेद है कि मैं स्पष्ट नहीं था। जो भी आपने अपने कोड में colName के रूप में उल्लेख किया था, मैंने इसे एसवी में बदल दिया, क्योंकि मैं पहले से ही colName चर का उपयोग कर रहा था। तो मूल रूप से, जो मैं करने की कोशिश कर रहा हूं वह निश्चित मूल्य प्राप्त करने के लिए कॉलम और पंक्ति को जोड़ता है (उदा। W9)। तो मुझे SumW के लिए WV और W2128 के लिए W9 का मान मिला। लेकिन जब मैं सबटोटल फ़ंक्शन का उपयोग करता हूं, वही वास्तविक मान के बजाय डाला जाता है। मैंने उन्हें इस तरह इस्तेमाल करने की कोशिश की। '= उप-योग (9," और SumV & ":" और SumW & ")'। लेकिन यहां तक कि एक अपवाद फेंक रहा है। –