Přechod na viditelnou buňku pomocí VBA

Pro informace o výuce Excelu klikněte zde

Dotaz:

Dobrý den,
také potřebuji poradit. U tabulky, kde je aktivních několik filtrů, potřebuji, aby se makro zabývalo pouze “viditelnými” buňkami. Jak ve sloupci zajistit posun z jedné viditelné buňky na další viditelnou buňku?

Přechod na první viditelnou buňku o řádek výše:

With ActiveCell
         Range(Cells(1, 1), .Offset(-1)) _
             .SpecialCells(xlCellTypeVisible).Areas(Range(Cells(1, 1), .Offset(-1)) _
             .SpecialCells(xlCellTypeVisible).Areas.Count).Cells(Range(Cells(1, 1), .Offset(-1)) _
             .SpecialCells(xlCellTypeVisible).Areas(Range(Cells(1, 1), .Offset(-1)) _
             .SpecialCells(xlCellTypeVisible).Areas.Count).Cells.Count).Select
End With

Přechod na první viditelnou buňku o řádek níže:

With ActiveCell
         Range(.Offset(1), Cells(Cells.Rows.Count, .Column)) _
          .SpecialCells(xlCellTypeVisible).Cells(1).Select
End With

Přechod na první viditelnou buňku o sloupec před:

With ActiveCell
     Range(Cells(.Row, .Column + 1), Cells(.Row, Columns.Count)) _
         .SpecialCells(xlCellTypeVisible).Cells(1).Select
 End With

Přechod na první viditelnou buňku o sloupec za:

With ActiveCell
    Range(Cells(.Row, .Column - 1), Cells(.Row, Columns.Count)) _
         .SpecialCells(xlCellTypeVisible).Cells(1).Select
End With

Poznámky:
Výše uvedené kódy používají metodu SpecialCells, která pracuje jen v odemknutém listu.
Před uvedené kódy doporučuji dát řádek: On Error Resume Next, který bude ignorovat chyby.
Pokud ho tam nedáme, musíme ještě vložit kód pro kontrolu, zda je vůbec aktivní buňka, a zda není na první/poslední pozici.
(nemůžeme přejít na předcházejíc buňku, pokud je aktivní buňka na prvním řádku)

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *