Keresés

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

  • Fferi50

    őstag

    válasz Richard #42223 üzenetére

    Szia!

    Ha van a szűrésnek eredménye, akkor csak a szűrt értékeket másolja a DataBodyRange.Copy.

    A DataBodyRange az a fejléc és összesítősor nélküli tartományt jelenti. Ha nincs a szűrésnek eredménye, akkor ennek nincs látható része, tehát a SpecialCells(xlCelltypeVisible) hibával tér vissza és ezt a hibaüzenetet az Application.DisplayAlert paranccsal sem tudod elnyomni, csak a megelőző On Error Resume Next utasítással ellenőrizheted, hogy hiba keletkezett-e .
    On Error Resume Next
    ListObjects(1).DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
    If Err<>0 Then Msgbox "Nincs mit másolni"
    On Error Goto 0

    Viszont így a teljes tartomány egyben marad, ezért a sima DataBodyRange.Copy másolja az egészet. (Lehet, hogy ez bug, mert ilyenkor hibát kellene logikusan adni, ezt igazából Redmond tudhatja, miért nem így van.)
    A szűrés eredményét a táblázat teljes tartományának vizsgálatával is tudod ellenőrizni.
    pl. így, ekkor nem kell hibakezelés bele:
    ListObjects(1).Range.SpecialCells(xlCellTypeVisible).Rows.Count
    Üdv.

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