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

Cum să grupați și să dezgropați rândurile în foaia de lucru protejată?

După cum știm cu toții, într-o foaie de lucru protejată, există multe limitări pentru noi de a aplica unele operații. De exemplu, nu putem comuta între datele grupate și cele grupate. Există o modalitate de a grupa sau dezgrupa rânduri într-o foaie de lucru protejată?

Grupați și dezgropați rândurile într-o foaie de lucru protejată cu cod VBA

Fila Office Activați editarea și navigarea cu file în Office și faceți munca mult mai ușoară ...
Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%
  • Reutilizați orice: Adăugați cele mai utilizate sau complexe formule, diagrame și orice altceva la preferatele dvs. și reutilizați-le rapid în viitor.
  • Peste 20 de caracteristici text: Extrageți numărul din șirul de text; Extrageți sau eliminați o parte din texte; Conversia numerelor și valutelor în cuvinte în limba engleză.
  • Instrumente de îmbinare: Mai multe cărți de lucru și foi într-unul; Combinați mai multe celule / rânduri / coloane fără a pierde date; Combinați rândurile duplicate și suma.
  • Instrumente divizate: Împărțiți datele în mai multe foi bazate pe valoare; Un registru de lucru pentru mai multe fișiere Excel, PDF sau CSV; O coloană la mai multe coloane.
  • Lipiți săriți Rânduri ascunse / filtrate; Număr și sumă de Culoarea fundalului; Trimiteți e-mailuri personalizate către mai mulți destinatari în bloc.
  • Super Filtru: Creați scheme avansate de filtrare și aplicați oricăror foi; Sortează pe săptămână, zi, frecvență și multe altele; Filtru prin îndrăznețe, formule, comentarii ...
  • Peste 300 de caracteristici puternice; Funcționează cu Office 2007-2021 și 365; Suporta toate limbile; Implementare ușoară în întreprinderea sau organizația dvs.

săgeată albastru dreapta balon Grupați și dezgropați rândurile într-o foaie de lucru protejată cu cod VBA

Poate că nu există o altă modalitate bună de a rezolva această problemă, dar folosind un cod VBA, vă rugăm să faceți următoarele:

1. Activați foaia de lucru pe care doriți să o utilizați, asigurați-vă că foaia de lucru nu este încă protejată.

2. Apoi țineți apăsat butonul ALT + F11 tastele și deschide fișierul Fereastra Microsoft Visual Basic pentru aplicații.

3. Clic Insera > Moduleși lipiți următorul cod în Fereastra modulului.

Cod VBA: grupați și dezgropați rândurile într-o foaie de lucru protejată

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. Apoi apăsați F5 pentru a rula acest cod și va apărea o casetă de solicitare pentru a vă reaminti introducerea parolei pentru a proteja foaia de lucru curentă. Vedeți captura de ecran:

doc-group-in-protected-sheet1

5. Apoi apasa OK, foaia dvs. de lucru a fost protejată, dar puteți extinde și contracta simbolurile de schiță din această foaie de lucru protejată, consultați captura de ecran:

doc-group-in-protected-sheet1

notițe: Dacă foaia dvs. de lucru este deja protejată, acest cod nu va funcționa.


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (32)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Se pare că funcționează grozav, dar când închid și redeschid registrul de lucru, mă confrunt cu aceeași problemă - nu-mi pot extinde grupurile restrânse.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am aceeași problemă, știe cineva cum să o depășesc. Mulţumesc mult
Acest comentariu a fost redus la minimum de moderatorul de pe site
Aveți nevoie de VBA pentru aceasta, iar utilizatorul final va trebui să permită macrocomenzi pentru ca acest lucru să funcționeze.

Apăsați Alt+F11 pentru a activa Editorul Visual Basic.

Faceți dublu clic pe ThisWorkbook, sub Microsoft Excel Objects în exploratorul de proiecte din partea stângă.

Copiați următorul cod în modulul care apare:



Private Sub Workbook_Open()
Cu foi de lucru ("Rezumat Emp")
.EnableOutlining = Adevărat
.Protect UserInterfaceOnly:=Adevărat
Se termina cu
End Sub



Acest cod va fi executat automat de fiecare dată când registrul de lucru este deschis.
Acest comentariu a fost redus la minimum de moderatorul de pe site
[quote]Se pare că funcționează excelent, dar când închid și redeschid registrul de lucru, mă confrunt cu aceeași problemă - nu-mi pot extinde grupurile restrânse.Prin mayich[/quote]Această problemă este rezolvată ca mai jos Private Sub Workbook_Open() Dim wsh As Variant For Each wsh In Worksheets(Array("Sheet1", "Sheet2")) wsh.EnableOutlining = True wsh.Protect Password:="260615" , DrawingObjects:=False, _ conținut:=Adevărat, _ Scenarii:=Adevărat, _ AllowFiltering:=Adevărat, _ AllowFormattingCells:=Adevărat, _ userinterfaceonly:=Adevărat Next wsh End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am aceeași problemă, de îndată ce închid și reintroduc foaia, nu funcționează... vă rugăm să dați pas cu pas unde și cum să utilizați. Problema este rezolvată după cum urmează Private Sub Workbook_Open() Dim wsh As Varianta pentru fiecare wsh din foile de lucru(Arra y("Sheet1", "Sheet2")) wsh.EnableOutli ning = True wsh.Protect Password:="2606 15", DrawingObjects: =False, _ contents:=True, _ Scenarios: =True, _ AllowFiltering:=True, _ AllowFormattingCells:=True, _ userinterfaceonly:=True Next wsh End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc mult, frate, asta funcționează foarte bine. Mulțumesc mult
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum ai făcut asta să funcționeze? Am încercat să-l adaug la VBA de mai sus și să fac un alt modul, dar tot nu funcționează. Trebuie să schimb vreunul dintre coduri? ca parola mea pe care o folosesc sau trebuie să schimb numele foilor?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am aceeași problemă când închid registrul de lucru. Ceva idei pentru a o repara?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Private Sub Workbook_Open() Dim wsh As Variant for Each wsh In Worksheets(Array("TD_ phase_3", "RS_Phase_2")) wsh.EnableOutlining = True wsh.Protect Password:="260615", DrawingObjects:=False, _ continut: =True, _ Scenarios:=True, _ AllowFiltering:=True, _ AllowFormattingCells:=True, _ userinterfaceonly:=True Next wsh End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Încă nu sunt sigur cum funcționează asta. Fac un nou modul sau atașez celui de mai sus?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Puteți face o plimbare pas cu pas unde să puneți asta așa cum au făcut în instrucțiunile originale. Mulțumesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna! Am folosit prima macrocomandă cu succes și apoi am avut aceeași problemă de a închide registrul de lucru și macro-ul nu mai funcționează. Văd soluția de mai sus, dar nu o fac deloc să funcționeze. Te superi să mă treci? Combin ambele coduri sau pur și simplu îl folosesc pe cel din urmă? Dacă parola mea este „câine”, înlocuiesc una dintre valorile din cod? Aplic doar la o singură foaie de lucru ("Sheet1"); il folosesc undeva? Multe mulțumiri in avans!!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vă rog să mă ajutați, vreau să restrâng și să extind câteva role și coloane într-o foaie de calcul Excel care este protejată. Cum pot folosi macrocomenzi pentru a face acest lucru? Am încercat ce ați arătat, dar pur și simplu nu funcționează în foaia mea de calcul. Te rog ajuta-ma.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, vă rog să mă ajutați să extind și să restrâng rolele și coloanele în foaia de calcul Excel care este protejată. Am încercat să le folosesc pe cele pe care le-ați arătat mai sus, dar nu funcționează.
Acest comentariu a fost redus la minimum de moderatorul de pe site
S-a întrebat/a răspuns? Unde în cod puteți specifica/modifica o parolă personală?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum pot schimba parola cu o altă valoare?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Când folosesc comanda, văd un mesaj de eroare așa cum se arată mai jos:
Private Sub Workbook_Open()
Dim wsh ca variantă
Pentru fiecare wsh din foile de lucru (Array("TD_ phase_3", "RS_Phase_2"))
wsh.EnableOutlining = Adevărat
wsh.Protect Password:="260615", DrawingObjects:=False, _
conținut:=Adevărat, _
Scenarii:=Adevărat, _
AllowFiltering:=Adevărat, _
AllowFormattingCells:=True, _
userinterfaceonly:=Adevărat
Următorul wsh
End Sub
Eroare de timp de rulare „9”:
Indice în afara intervalului
Acest comentariu a fost redus la minimum de moderatorul de pe site
funcționează puțin, odată ce închizi și redeschizi, se oprește :(
Acest comentariu a fost redus la minimum de moderatorul de pe site
Chiar și pentru mine, există altă soluție?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Sub Workbook_Open()
„Actualizare 20140603
Dim xWs ca fișă de lucru
Set xWs = Application.ActiveSheet
Dim xPws ca șir
xPws = "rfc" ''Application.InputBox("Parola:", xTitleId, "", Type:=2)
xWs.Protect Password:=xPws, Userinterfaceonly:=True
xWs.EnableOutlining = Adevărat
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am făcut ca acest cod să funcționeze. Dar când închid și redeschid trebuie să merg la fila dezvoltator, să selectez butonul macrocomenzi, să selectez rulare și să introduc parola.

Există o modalitate de a elimina parola din cod SAU un cod de rulare automată care va rula automat acest marco și va introduce parola?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pentru a remedia problema că acest lucru nu funcționează în fișierul dvs. după ce l-ați închis și l-ați deschis din nou, trebuie să lipiți codul VBA în „ThisWorkbook” sub Microsoft Excel Objects în loc de un modul nou. Aceasta va rula automat macrocomanda de fiecare dată când fișierul este deschis.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Aveți elemente vizuale pentru Codul VBA discutat acum 6 zile pentru a curăța peachyclear despre ThisWorkbook sub Microsoft Objects în loc de un modul nou. Funcționalitatea se pierde când revin în registrul de lucru
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cineva ar putea avea nevoie de asta, cred că mi-am dat seama cum să fac asta să funcționeze.

În primul rând, codul trebuie să fie scris în „ThisWorkbook” sub Microsoft Excel Objects, așa cum sugerează @peachyclean.
În al doilea rând, luați codul pe care l-a scris @Sravanthi și inserați-l în locația menționată mai sus.

Sub Workbook_Open()
„Actualizare 20140603
Dim xWs ca fișă de lucru
Set xWs = Application.ActiveSheet
Dim xPws ca șir
xPws = "rfc" ''Application.InputBox("Parola:", xTitleId, "", Type:=2)
xWs.Protect Password:=xPws, Userinterfaceonly:=True
xWs.EnableOutlining = Adevărat
End Sub

Chestia este că trebuie să fiți pe foaia pe care doriți să o protejați, dar permițând utilizarea grupării și să salvați registrul de lucru și să închideți, fără a vă proteja. Acum, dacă îl deschideți, macro-ul pornește automat, va face foaia protejată cu parola „rfc”. Acum puteți folosi gruparea, foaia este protejată.

Pentru soluția mea, am modificat parola aplicată, astfel încât să puteți rescrie orice parolă AICI:
xPws = "WRITEANYPASSWORDHERE" ''Application.InputBox("Parola:", xTitleId, "", Type:=2)

În plus, nu am vrut ca foaia să fie protejată să fie activă la deschiderea fișierului, prin urmare am modificat această parte:
Setați xWs = Application.ActiveSheet ->
Set xWs = Application.Worksheets("WRITEANSHHEET'SNAMEHERE")

Acum funcționează ca un farmec, foaia numită „WRITEANYSHEET'SNAMEHERE” este protejată, dar gruparea este valabilă. Pe termen lung, cred că problema va fi că, dacă vreau să modific acest fișier și să păstrez soluția, trebuie să deprotejez această foaie pentru a o face să funcționeze la următoarea deschidere. Presupun că poți scrie o altă macrocomandă pentru a o deproteja automat la închidere :)


Sper că a ajutat.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună.. asta a făcut minuni. singurul loc în care mă blochez acum este că trebuie să fac asta pentru mai multe foi din registrul de lucru. poti ajuta te rog cu asta.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acest șir părea să fie exact ceea ce aveam nevoie, deoarece nu știu nimic despre VBA. Am reușit să fac ca acest lucru să funcționeze inițial, dar așa cum s-a subliniat, odată ce închideți foaia de calcul și o redeschideți, nu mai funcționează. Am încercat să scriu codul în „ThisWorkbook”, așa cum am menționat, dar nu îmi pot da seama cum să fac asta. Pot vedea „ThisWorkbook” dar nu știu cum să scriu în el. În fiecare fel în care văd pentru a crea un modul, creează un modul nou într-un folder separat „Module”, în afara folderului „Microsoft Excel Objects”. Aveți sugestii despre cum să puneți acest cod în „ThisWorkbook”?
Acest comentariu a fost redus la minimum de moderatorul de pe site
formidabil
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum se grupează și se degrupează rândurile și coloanele în foaia de lucru protejată?
Acest comentariu a fost redus la minimum de moderatorul de pe site
La naiba, asta mi-a furat excelul mai târziu și mi-a schimbat parola în mod privat
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există vreo modalitate de a face acest lucru să funcționeze într-un registru de lucru partajat? - Am nevoie de schimbările pistei, mulțumesc
Nu există comentarii postate aici încă
Încărcați mai
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL