Hirdetés

Új hozzászólás Aktív témák

  • Delila_1

    veterán

    Folytatva az előbb elkezdettet, az eredeti makró

    Function FilterOn(myCell As Range) As Boolean
    On Error Resume Next
    With myCell.Parent.AutoFilter
    With .Filters(myCell.Column - .Range.Column + 1)
    If .On Then FilterOn = True
    End With
    End With
    End Function

    Az első With kezdősorában szerepel a myCell.Parent.AutoFilter, vagyis a megadott cella szülőjének (a munkalapnak) az autofiltere.
    A With és End With közötti ponttal kezdődő hivatkozásokat úgy kell értelni, mint a kezdősorában lévő adat folytatása.

    A második With első sora [.Filters(myCell.Column - .Range.Column + 1)] a fenti autofilterre vonatkozik, az If-es sor pedig erre a filterre.
    Mindent kiírva ez a belső sor így nézne ki:

    If myCell.Parent.AutoFilter.Filters(myCell.Column - myCell.Parent.AutoFilter.Range.Column + 1).On Then FilterOn = True

    és akkor a teljes makró ennyi lenne:

    Function FilterOn(myCell As Range) As Boolean
    Application.Volatile
    On Error Resume Next
    If myCell.Parent.AutoFilter.Filters(myCell.Column - myCell.Parent.AutoFilter.Range.Column + 1).On Then FilterOn = True
    End Function

    Ezzel csak az a baj, hogy nehezen követhető.

Új hozzászólás Aktív témák