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)