मेरे पास एक शीट FC है, इस शीट के साथ, मेरे पास कॉलम R, S और T भरा हुआ है। मैं एक कोड रखना पसंद करूंगा, जो यह जांचता है कि क्या R में "अमान्य" है और यदि S और t भरे हुए हैं, तो उसे पूरी पंक्ति को फ़िल्टर करना चाहिए।

मुझे पता है कि सेल खाली है या नहीं, यह जांचने के लिए हम isblank फ़ंक्शन का उपयोग कर सकते हैं, लेकिन मुझे आश्चर्य है कि मैं इन शर्तों के साथ फ़िल्टर फ़ंक्शन का उपयोग कैसे कर सकता हूं। कोई भी मदद मेरे लिए सहायक होगी। मैं मारा गया हूं कि मैं वीबीए कोड के साथ कैसे आगे बढ़ सकता हूं। कोड न होने के लिए मुझे क्षमा करें।

-2
Jenny 19 सितंबर 2017, 14:00

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
1
Mrig 19 सितंबर 2017, 15:08

आपको किसी तरह अंतिम पंक्ति निर्दिष्ट करनी होगी:

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 स्थिति में हम आपके द्वारा पूछी गई तीन चीजों की जांच करते हैं।

2
Michał Turczyn 19 सितंबर 2017, 14:07

मान लें कि Row1 हेडर पंक्ति है और आपका डेटा Row2 से शुरू होता है, एक सहायक कॉलम में, नीचे दिए गए सूत्र को रखें।

यह सूत्र या तो सही या गलत लौटाएगा, फिर आप अपनी आवश्यकता के अनुसार सहायक कॉलम को सही या गलत के साथ फ़िल्टर कर सकते हैं।

=AND(R2="Invalid",S2<>"",T2<>"")

यदि आपकी हेडर पंक्ति अलग है, तो उसके अनुसार सूत्र में बदलाव करें।

1
Subodh Tiwari sktneer 19 सितंबर 2017, 14:47
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

आशा है कि यह आपकी मदद करेगा :)

1
tranyo 19 सितंबर 2017, 15:10

इस समस्या के लिए आपको वीबीए कोड की आवश्यकता क्यों है?

यदि आप और और सूत्र के साथ एक नया कॉलम जोड़ते हैं, और जोड़े गए कॉलम के भीतर ऑटोफिल्टरिंग करते हैं तो यह अधिक आसान है। U2 सेल में फॉर्मूला इस तरह हो सकता है।

=if(and(R2="invalid";S2="";T2="");"x";"")

ऑटोफिल्टर को x पर भी सेट करें। :)

0
Axel 19 सितंबर 2017, 15:14