Note: The other languages of the website are Google-translated. Back to English

Jak udržet posuvník kontingenční tabulky v pohybu pomocí posouvání listu v aplikaci Excel?

Při práci s kontingenční tabulkou můžete vložit průřezy pro vizuální filtrování dat tabulky. Tento článek hovoří o udržování průřezu kontingenční tabulky vždy viditelném při posouvání listu.

Udržujte posuvník kontingenční tabulky v pohybu pomocí posouvání listu pomocí kódu VBA


Udržujte posuvník kontingenční tabulky v pohybu pomocí posouvání listu pomocí kódu VBA


Následující skript VBA vám pomůže udržet průřez kontingenční tabulky v pohybu s listem. Postupujte prosím následovně.

1. zmáčkni Další + F11 současně otevřete Microsoft Visual Basic pro aplikace okno.

2. V Microsoft Visual Basic pro aplikace okno, dvakrát klikněte Tato pracovní kniha v levém podokně projektu a poté zkopírujte a vložte níže uvedený kód VBA do Tento sešit (kód) okno. Viz snímek obrazovky:

Kód VBA: Udržujte posuvník kontingenční tabulky v pohybu pomocí posouvání listu

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim ShF As Shape
    Dim ShM As Shape
    'specify a slicer
    Application.ScreenUpdating = False
    Set ShF = ActiveSheet.Shapes("Column1")
    Set ShM = ActiveSheet.Shapes("Column2")
    'change position of the slicer
    With Windows(1).VisibleRange.Cells(1, 1)
        ShF.Top = .Top
        ShF.Left = .Left + 300
        ShM.Top = .Top
        ShM.Left = .Left + 100
    End With
    Application.ScreenUpdating = True
End Sub

Poznámky:

1). V kódu jsou sloupce1 a sloupce2 názvy průřezů.

2). Při posouvání listu v kódu můžete určit polohu průřezů.

3). A do kódu můžete přidat další průřezy nebo z něj průřezy odstranit, jak potřebujete.

3. zmáčkni Další + Q klávesy pro zavření Microsoft Visual Basic pro aplikace dialogové okno.

Od této chvíle budou zadané průřezy přesunuty s aktivní buňkou při posouvání listu. Viz screenshot:


Související články:


Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2019 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Kompletní funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50% a omezuje stovky kliknutí myší každý den!
officetab dno
Komentáře (10)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Děkuji za tento VBA.

Nemám absolutně žádnou představu o VBA a proto můj dotaz.

Použil jsem tento VBA a měl jsem otázku.
Jak mohu změnit tento VBA tak, aby fungoval pouze pro jeden list.

Právě teď mám 8 listů a pokaždé, když jdu na jiný list, selže a požádá mě o ukončení nebo ladění.
Udělal jsem přesně tak, jak je uvedeno výše.


Toto je můj VBA zde..
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim ShF As Shape
Dim ShM As Shape
'určete kráječ
Application.ScreenUpdating = False
Nastavit ShF = ActiveSheet.Shapes("Klient 1")
Nastavit ShM = ActiveSheet.Shapes("Reminder 1")
'změňte polohu kráječe
Se systémem Windows(1).VisibleRange.Cells(1, 1)
ShF.Top = .Top + 2
ShF.Left = .Left + 475
ShM.Top = .Top + 180
ShM.Left = .Left + 475
Konec s
Application.ScreenUpdating = True
End Sub


Prosím, pomozte.
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Děkuji za tento VBA.

Nemám absolutně žádnou představu o VBA a proto můj dotaz.

Použil jsem tento VBA a měl jsem otázku.
Jak mohu změnit tento VBA tak, aby fungoval pouze pro jeden list.

Právě teď mám 8 listů a pokaždé, když jdu na jiný list, selže a požádá mě o ukončení nebo ladění.
Udělal jsem přesně tak, jak je uvedeno výše.


Toto je můj VBA zde..
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim ShF As Shape
Dim ShM As Shape
'určete kráječ
Application.ScreenUpdating = False
Nastavit ShF = ActiveSheet.Shapes("Klient 1")
Nastavit ShM = ActiveSheet.Shapes("Reminder 1")
'změňte polohu kráječe
Se systémem Windows(1).VisibleRange.Cells(1, 1)
ShF.Top = .Top + 2
ShF.Left = .Left + 475
ShM.Top = .Top + 180
ShM.Left = .Left + 475
Konec s
Application.ScreenUpdating = True
End Sub


Prosím, pomozte.
Tento komentář byl moderátorem webu minimalizován
Dear John,
Přejděte na list, pro který chcete, aby kód VBA fungoval pouze, a poté klikněte pravým tlačítkem na kartu List a z kontextové nabídky vyberte Zobrazit kód.
A poté zkopírujte a vložte níže uvedený kód VBA do otevíracího okna Kód. Viz níže uvedený snímek obrazovky:

Private Sub Worksheet_SelectionChange (ByVal Target As Range)
Dim ShF As Shape
Dim ShM As Shape
'určete kráječ
Application.ScreenUpdating = False
Nastavit ShF = ActiveSheet.Shapes("Fruit")
Nastavit ShM = ActiveSheet.Shapes("Prodej")
'změňte polohu kráječe
Se systémem Windows(1).VisibleRange.Cells(1, 1)
ShF.Top = .Top
ShF.Left = .Left + 300
ShM.Top = .Top
ShM.Left = .Left + 100
Konec s
Application.ScreenUpdating = True
End Sub
Tento komentář byl moderátorem webu minimalizován
Milá Crystal,

Děkuji mnohokrát za kód.
Udělal jsem přesně, jak jsi řekl, a funguje to jako kouzlo.

Opravdu si toho vážím.
Na zdraví :)
Tento komentář byl moderátorem webu minimalizován
Ahoj, aktualizoval jsem svůj kód, jak jste uvedli. Průřez se již neposouvá spolu s oknem, ale pokud kliknu do nové buňky, průřez se přesune. Je toto správné chování?
Tento komentář byl moderátorem webu minimalizován
Co označuje první řádek a jak jej přizpůsobíme, aby vyhovoval našemu sliceru?
Jsem z toho hodně zmatený v podstatě na každém řádku.
Tento komentář byl moderátorem webu minimalizován
Milá Katie
Nevím, jestli úplně rozumím vaší otázce.
Jak jsem zmínil výše v poznámkách, musíte v kódu nahradit Sloupec1 a Sloupec2 názvy vašich průřezů, aby se váš průřez posouval s listem.
Tento komentář byl moderátorem webu minimalizován
Mám 4 řezy, které byly seskupeny tak, že jsem vybral všechny 4 a pravým kliknutím použil příkaz group.

Je možné přiřadit tento VBA skupinou? Jak označíte skupinu a napíšete VBA, abyste ji rozpoznali jako jednu?
Tento komentář byl moderátorem webu minimalizován
Hi Michael,
Promiň, s tím ti nepomůžu. Děkuji za Váš komentář.
Tento komentář byl moderátorem webu minimalizován
Dobře, takže název říká: „Jak udržet výřez kontingenční tabulky v pohybu s pracovním listem Posouvání V Excelu?", ale tento kód VBA to dělá pouze pro aktuálně vybranou buňku, jak to můžeme udělat pro rolování sešitu, a nejen vybranou buňku?
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění