मेरे पास एक शीट FC है, इस शीट के साथ, मेरे पास कॉलम R, S और T भरा हुआ है। मैं एक कोड रखना पसंद करूंगा, जो यह जांचता है कि क्या R में "अमान्य" है और यदि S और t भरे हुए हैं, तो उसे पूरी पंक्ति को फ़िल्टर करना चाहिए।
मुझे पता है कि सेल खाली है या नहीं, यह जांचने के लिए हम isblank फ़ंक्शन का उपयोग कर सकते हैं, लेकिन मुझे आश्चर्य है कि मैं इन शर्तों के साथ फ़िल्टर फ़ंक्शन का उपयोग कैसे कर सकता हूं। कोई भी मदद मेरे लिए सहायक होगी। मैं मारा गया हूं कि मैं वीबीए कोड के साथ कैसे आगे बढ़ सकता हूं। कोड न होने के लिए मुझे क्षमा करें।
5 जवाब
ये कोशिश करें
Sub Demo()
Dim lastRow As Long
Dim cel As Range
With Worksheets("Sheet3") 'change Sheet3 to your data sheet
lastRow = .Cells(.Rows.Count, "R").End(xlUp).Row 'get last row in Column R
For Each cel In .Range("R5:R" & lastRow) 'loop through each cell in range R5 to lase cell in Column R
If cel.Value = "invalid" And Not IsEmpty(cel.Offset(0, 1)) And Not IsEmpty(cel.Offset(0, 2)) Then
cel.EntireRow.Hidden = True 'hide row if condition is satisfied
End If
Next cel
End With
End Sub
संपादित करें:
पंक्तियों को दिखाने के लिए।
Sub UnhideRows()
Worksheets("Sheet3").Rows.Hidden = False
End Sub
आपको किसी तरह अंतिम पंक्ति निर्दिष्ट करनी होगी:
Dim lastRow, i As Long
For i = 1 To lastRow 'specify lastRow variable
If InStr(1, LCase(Range("R" & i).Value), "invalid") > 0 And Range("S" & i).Value = "" And Range("T" & i).Value = "" Then
'do work
End If
Next i
अपनी If
स्थिति में हम आपके द्वारा पूछी गई तीन चीजों की जांच करते हैं।
मान लें कि Row1 हेडर पंक्ति है और आपका डेटा Row2 से शुरू होता है, एक सहायक कॉलम में, नीचे दिए गए सूत्र को रखें।
यह सूत्र या तो सही या गलत लौटाएगा, फिर आप अपनी आवश्यकता के अनुसार सहायक कॉलम को सही या गलत के साथ फ़िल्टर कर सकते हैं।
=AND(R2="Invalid",S2<>"",T2<>"")
यदि आपकी हेडर पंक्ति अलग है, तो उसके अनुसार सूत्र में बदलाव करें।
sub myfiltering()
'maybe first row always 4
firstrow=4
'last, maybe R column alaways have any entered info, so let us see what is the last
lastrow=cells(65000,18).end(xlup).row
'go ahead
for myrow=firstrow to lastrow
if cells(myrow,18)="Invalid" and cells(myrow,19)="" and cells(myrow,20)="" then
Rows(myrow).EntireRow.Hidden = True
else
Rows(myrow).EntireRow.Hidden = false
end if
next myrow
msgbox "Filter completed"
end sub
आशा है कि यह आपकी मदद करेगा :)
इस समस्या के लिए आपको वीबीए कोड की आवश्यकता क्यों है?
यदि आप और और सूत्र के साथ एक नया कॉलम जोड़ते हैं, और जोड़े गए कॉलम के भीतर ऑटोफिल्टरिंग करते हैं तो यह अधिक आसान है। U2 सेल में फॉर्मूला इस तरह हो सकता है।
=if(and(R2="invalid";S2="";T2="");"x";"")
ऑटोफिल्टर को x पर भी सेट करें। :)
संबंधित सवाल
नए सवाल
vba
अनुप्रयोगों के लिए विजुअल बेसिक (VBA) मैक्रो लिखने के लिए एक इवेंट-संचालित, ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है, जिसका उपयोग पूरे ऑफिस सूट के साथ-साथ अन्य अनुप्रयोगों के लिए भी किया जाता है। VBA VB.NET, या VBS के बराबर नहीं है; यदि आप Visual Studio उपयोग [vb.net] में काम कर रहे हैं। यदि आपका प्रश्न विशेष रूप से किसी एमएस ऑफिस एप्लिकेशन को प्रोग्रामिंग करने के बारे में है, तो उपयुक्त टैग का भी उपयोग करें: [एक्सेल], [एमएस-एक्सेस], [एमएस-वर्ड], [आउटलुक], या [एमएस-प्रोजेक्ट]।