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

Jak seskupit a oddělit řádky v chráněném listu?

Jak všichni víme, v chráněném listu existuje mnoho omezení pro použití některých operací. Například nemůžeme přepínat mezi seskupenými a neseskupenými daty. Existuje způsob, jak seskupit nebo oddělit řádky v chráněném listu?

Seskupte a oddělte řádky v chráněném listu pomocí kódu VBA

Karta Office Povolte úpravy a procházení na kartách v Office a vaše práce bude mnohem jednodušší ...
Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%
  • Znovu použít cokoli: Přidejte do svých oblíbených nejpoužívanější nebo nejsložitější vzorce, grafy a cokoli jiného a rychle je v budoucnu znovu použijte.
  • Více než 20 textových funkcí: Extrahovat číslo z textového řetězce; Extrahovat nebo odebrat část textů; Převádějte čísla a měny na anglická slova.
  • Sloučit nástroje: Více sešitů a listů do jednoho; Sloučit více buněk / řádků / sloupců bez ztráty dat; Sloučit duplicitní řádky a součet.
  • Rozdělené nástroje: Rozdělit data do více listů na základě hodnoty; Jeden sešit pro více souborů Excel, PDF nebo CSV; Jeden sloupec na více sloupců.
  • Vložit přeskakování Skryté / filtrované řádky; Count And Sum podle barvy pozadí; Posílejte hromadně osobní e-maily více příjemcům.
  • Super filtr: Vytvořte pokročilá schémata filtrů a použijte je na jakékoli listy; Typ podle týdne, dne, frekvence a dalších; Filtr tučně, vzorce, komentovat ...
  • Více než 300 výkonných funkcí; Funguje s Office 2007-2019 a 365; Podporuje všechny jazyky; Snadné nasazení ve vašem podniku nebo organizaci.

šipka modrá pravá bublina Seskupte a oddělte řádky v chráněném listu pomocí kódu VBA


Možná neexistuje jiný dobrý způsob, jak tento problém vyřešit, ale pomocí kódu VBA postupujte takto:

1. Aktivujte svůj list, který chcete použít. Ujistěte se, že list ještě není chráněn.

2. Poté přidržte ALT + F11 klíče a otevře se Okno Microsoft Visual Basic pro aplikace.

3, klikněte Vložit > Modula vložte následující kód do Okno modulu.

Kód VBA: Seskupte a oddělte řádky v chráněném listu

Sub EnableOutlining()
'Update 20140603
Dim xWs As Worksheet
Set xWs = Application.ActiveSheet
Dim xPws As String
xPws = Application.InputBox("Password:", xTitleId, "", Type:=2)
xWs.Protect Password:=xPws, Userinterfaceonly:=True
xWs.EnableOutlining = True
End Sub

4. Pak stiskněte tlačítko F5 klíč ke spuštění tohoto kódu a vyskočí okno s výzvou, které vám připomene zadání hesla k ochraně aktuálního listu. Viz snímek obrazovky:

doc-group-in-protected-sheet1

5. Pak klikněte na tlačítko OK, váš list byl chráněn, ale můžete rozbalit a zkrátit obrysové symboly v tomto chráněném listu, viz screenshot:

doc-group-in-protected-sheet1

Poznámka: Pokud je váš list již chráněn, tento kód nebude fungovat.


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 (32)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Zdá se, že to funguje skvěle, ale když zavřu a znovu otevřu sešit, narazím na stejný problém - nemohu rozbalit sbalené skupiny.
Tento komentář byl moderátorem webu minimalizován
Mám stejný problém, neví někdo jak to překonat. Mnohokrát děkuji
Tento komentář byl moderátorem webu minimalizován
K tomu potřebujete VBA a koncový uživatel bude muset povolit makra, aby to fungovalo.

Stisknutím Alt+F11 aktivujte Editor jazyka Visual Basic.

Poklepejte na ThisWorkbook v části Microsoft Excel Objects v průzkumníku projektu na levé straně.

Zkopírujte následující kód do modulu, který se zobrazí:



Soukromá podřízená sešit_Open ()
S pracovními listy ("Emp Summary")
.EnableOutlining = Pravda
.Protect UserInterfaceOnly:=Pravda
Konec s
End Sub



Tento kód se spustí automaticky při každém otevření sešitu.
Tento komentář byl moderátorem webu minimalizován
[quote]Zdá se, že to funguje skvěle, ale když zavřu a znovu otevřu sešit, narazím na stejný problém - nemohu rozbalit sbalené skupiny.Od mayicha[/quote]Tato záležitost je vyřešena následovně Private Sub Workbook_Open() Dim wsh As Variant for Every wsh In Worksheets(Array("Sheet1", "Sheet2")) wsh.EnableOutlining = Pravda wsh.Protect Password:="260615" , DrawingObjects:=Nepravda, _ obsah:=True, _ Scénáře:=True, _ AllowFiltering:=True, _ AllowFormattingCells:=True, _ userinterfaceonly:=True Další wsh End Sub
Tento komentář byl moderátorem webu minimalizován
Mám stejný problém, jakmile zavřu a znovu vstoupím do listu, nefunguje to... prosím uveďte krok za krokem, kde a jak použít. Tato záležitost je vyřešena následovně Private Sub Workbook_Open() Dim wsh As Varianta pro každý wsh v listech(Arra y("List1", "List2")) wsh.EnableOutli ning = Pravda wsh.Protect Password:="2606 15", DrawingObjects: =Nepravda, _ obsah:=True, _ Scénáře: =True, _ AllowFiltering:=True, _ AllowFormattingCells:=True, _ userinterfaceonly:=True Další wsh End Sub
Tento komentář byl moderátorem webu minimalizován
Děkuji moc brácho, funguje to opravdu dobře. Díky moc
Tento komentář byl moderátorem webu minimalizován
Jak se vám to povedlo? Zkoušel jsem to přidat do VBA výše a vytvořit jiný modul, ale stále to nefunguje. Musím změnit některý z kódů? jako moje heslo, které používám, nebo musím změnit názvy listů?
Tento komentář byl moderátorem webu minimalizován
Mám stejný problém, když zavřu sešit. Nějaké nápady, jak to opravit?
Tento komentář byl moderátorem webu minimalizován
Private Sub Workbook_Open() Dim wsh jako varianta pro každý wsh v listech (Array("TD_ phase_3", "RS_Phase_2")) wsh.EnableOutlining = Pravda wsh.Protect Password:="260615", DrawingObjects:=False, _ obsah: =True, _ Scenarios:=True, _ AllowFiltering:=True, _ AllowFormattingCells:=True, _ userinterfaceonly:=True Další wsh End Sub
Tento komentář byl moderátorem webu minimalizován
Stále si nejsem jistý, jak to funguje. Mám vytvořit nový modul nebo připojit k výše uvedenému?
Tento komentář byl moderátorem webu minimalizován
Můžete to udělat krok za krokem, kam to umístit, jak to udělali v původních pokynech. Děkuji.
Tento komentář byl moderátorem webu minimalizován
Ahoj! Úspěšně jsem použil první makro a pak jsem měl stejný problém s zavřením sešitu a makro již nefungovalo. Vidím řešení výše, ale nemůžu to vůbec spustit. Mohl bys mě projít? Mám zkombinovat oba kódy nebo použít pouze druhý? Pokud je moje heslo „pes“, nahradím jednu z hodnot v kódu? Aplikuji pouze na jeden pracovní list ("Sheet1"); používám to někde? Předem děkuji!!
Tento komentář byl moderátorem webu minimalizován
Prosím, pomozte mi, chci sbalit a rozbalit některé role a sloupce v excelové tabulce, která je chráněna. Jak k tomu mohu použít makra? Zkoušel jsem to, co jste ukázali, ale v mé tabulce prostě nefungují. Prosím pomozte.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, prosím pomozte mi rozbalit a sbalit role a sloupce v excelové tabulce, která je chráněna. Zkoušel jsem použít ty, které jsi ukázal výše, ale nefungují.
Tento komentář byl moderátorem webu minimalizován
Bylo to dotázáno/odpovězeno? Kde v kódu můžete zadat / změnit osobní heslo?
Tento komentář byl moderátorem webu minimalizován
Jak mohu změnit heslo na jinou hodnotu?
Tento komentář byl moderátorem webu minimalizován
Když použiji příkaz, zobrazí se mi chybová zpráva, jak je uvedeno níže:
Soukromá podřízená sešit_Open ()
Dim wsh jako varianta
Pro každý wsh v pracovních listech(Array("TD_ fáze_3", "RS_Phase_2"))
wsh.EnableOutlining = Pravda
wsh.Protect Password:="260615", DrawingObjects:=False, _
obsah:=Pravda, _
Scénáře:=True, _
AllowFiltering:=True, _
AllowFormattingCells:=True, _
userinterfaceonly:=Pravda
Další wsh
End Sub
Chyba doby běhu '9':
Index mimo rozsah
Tento komentář byl moderátorem webu minimalizován
to chvíli funguje, jakmile zavřete a znovu otevřete, zastaví se :(
Tento komentář byl moderátorem webu minimalizován
Dokonce i pro mě, existuje nějaké jiné řešení?
Tento komentář byl moderátorem webu minimalizován
Sub Workbook_Open ()
'Aktualizace 20140603
Dim xWs jako pracovní list
Nastavit xWs = Application.ActiveSheet
Dim xPws jako řetězec
xPws = "rfc" ''Application.InputBox("Heslo:", xTitleId, "", Typ:=2)
xWs.Protect Heslo:=xPws, pouze uživatelské rozhraní:=True
xWs.EnableOutlining = Pravda
End Sub
Tento komentář byl moderátorem webu minimalizován
Tento kód jsem zprovoznil. Ale když zavřu a znovu otevřu, musím přejít na kartu vývojáře, vybrat tlačítko makra, vybrat spustit a zadat heslo.

Existuje způsob, jak odstranit heslo z kódu NEBO kód automatického spuštění, který automaticky spustí toto marko a zadá heslo?
Tento komentář byl moderátorem webu minimalizován
Chcete-li vyřešit problém s tím, že to nefunguje ve vašem souboru poté, co jste jej zavřeli a znovu otevřeli, musíte vložit kód VBA do "ThisWorkbook" v části Microsoft Excel Objects namísto nového modulu. To pak automaticky spustí makro při každém otevření souboru.
Tento komentář byl moderátorem webu minimalizován
máte vizuály pro kód VBA, o kterém jsme diskutovali před 6 dny, abyste mohli broskvově vyčistit ThisWorkbook pod Microsoft Objects místo nového modulu. Funkce je ztracena, když se vrátím do svého sešitu
Tento komentář byl moderátorem webu minimalizován
Někdo by to mohl potřebovat, myslím, že jsem přišel na to, jak to udělat.

Nejprve musí být váš kód napsán v „ThisWorkbook“ v části Microsoft Excel Objects, jak navrhuje @peachyclean.
Za druhé, vezměte kód, který napsal @Sravanthi, a vložte jej na výše uvedené místo.

Sub Workbook_Open ()
'Aktualizace 20140603
Dim xWs jako pracovní list
Nastavit xWs = Application.ActiveSheet
Dim xPws jako řetězec
xPws = "rfc" ''Application.InputBox("Heslo:", xTitleId, "", Typ:=2)
xWs.Protect Heslo:=xPws, pouze uživatelské rozhraní:=True
xWs.EnableOutlining = Pravda
End Sub

Jde o to, že musíte být na listu, který chcete chránit, ale povolit použití seskupení, uložit sešit a zavřít bez ochrany. Nyní, pokud jej otevřete, makro se automaticky spustí, list bude chráněn heslem „rfc“. Nyní můžete použít seskupení, list je chráněn.

Pro mé řešení jsem upravil použité heslo, takže si můžete libovolné heslo přepsat ZDE:
xPws = "WRITEANYPASSWORDHERE" ''Application.InputBox("Password:", xTitleId, "", Type:=2)

Dále jsem nechtěl, aby byl list, který má být chráněn, aktivní při otevírání souboru, proto jsem tuto část upravil:
Nastavit xWs = Application.ActiveSheet ->
Nastavit xWs = Application.Worksheets("WRITEANYSHEET'SNAMEHERE")

Nyní to funguje jako kouzlo, list s názvem 'WRITEANYSHEET'SNAMEHERE' je chráněn, ale seskupení je použitelné. Z dlouhodobého hlediska si myslím, že problém bude v tom, že pokud chci tento soubor upravit a ponechat řešení, musím tento list odemknout, aby fungoval při příštím otevření. Myslím, že můžete napsat další makro, které se automaticky odblokuje při zavírání :)


Doufám, že to pomohlo.
Tento komentář byl moderátorem webu minimalizován
Ahoj.. tohle dělalo zázraky. jediné místo, kde se teď zasekávám, je, že to musím udělat pro více listů v sešitu. můžete s tím pls pomoci.
Tento komentář byl moderátorem webu minimalizován
Tento řetězec vypadal, že je přesně to, co jsem potřeboval, protože o VBA nic nevím. Zpočátku jsem to dokázal zprovoznit, ale jak bylo zdůrazněno, jakmile tabulku zavřete a znovu otevřete, už to nefunguje. Pokusil jsem se napsat kód do "ThisWorkbook", jak je uvedeno, ale nemohu přijít na to, jak to udělat. Vidím „ThisWorkbook“, ale nevím, jak do něj psát. Každý způsob, jak vidím vytvořit modul, vytvoří nový modul v samostatné složce "Modules" mimo složku "Microsoft Excel Objects". Nějaké návrhy, jak vložit tento kód do „ThisWorkbook“?
Tento komentář byl moderátorem webu minimalizován
impozantní
Tento komentář byl moderátorem webu minimalizován
Jak seskupit a oddělit řádky a sloupce v chráněném listu?
Tento komentář byl moderátorem webu minimalizován
sakra, tohle mi později ukradlo excel a soukromě změnilo heslo
Tento komentář byl moderátorem webu minimalizován
Existuje způsob, jak to zajistit, aby to fungovalo na sdíleném sešitu? - Potřebuji změnit trať, díky
Zatím zde nejsou žádné komentáře
Načíst další
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění