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

Cum se blochează sau se blochează fila foii de lucru în Excel?

Presupunând că aveți un registru de lucru care conține mai multe foi de lucru, există o foaie de lucru numită Main-sheet ca prima filă din registrul de lucru. Și acum, doriți să încercați să blocați sau să înghețați această filă de foaie pentru a o face întotdeauna vizibilă chiar și atunci când derulați pe mai multe foi de lucru. De fapt, nu există o modalitate directă de a îngheța fila, dar puteți utiliza o soluție pentru a rezolva această problemă.

Blocați sau blocați o filă de foaie de lucru specifică cu cod VBA


săgeată albastru dreapta balon Blocați sau blocați o filă de foaie de lucru specifică cu cod VBA

În Excel, putem aplica următorul cod VBA pentru a face foaia de lucru specifică întotdeauna înainte de fila de foaie de lucru curentă, astfel încât să puteți vedea întotdeauna această foaie de lucru atunci când derulați peste orice alte file de foaie. Vă rugăm să faceți următoarele:

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

2. Atunci alege Acest manual de lucru din stânga Explorator de proiecte , faceți dublu clic pe acesta pentru a deschide Module, apoi copiați și lipiți următorul cod VBA în modulul gol:

Cod VBA: înghețați sau blocați o filă de foaie de lucru specifică

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Update by Extendoffice
Application.EnableEvents = False
Application.ScreenUpdating = False
If Application.ActiveSheet.Index <> Application.Sheets("Main-sheet").Index Then
    Application.Sheets("Main-sheet").Move Before:=Application.Sheets(Application.ActiveSheet.Index)
    Application.Sheets("Main-sheet").Activate
    Sh.Activate
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

doc-freeze-sheet-tab-1

3. Și apoi salvați și închideți acest cod, acum, când faceți clic pe oricare dintre fila de foaie de lucru, această foaie de lucru specifică va fi întotdeauna în partea din față a filei de foaie pe care ați dat clic, consultați capturile de ecran:

doc-freeze-sheet-tab-2
-1
doc-freeze-sheet-tab-3

notițe: În codul de mai sus, foaia principală este numele foii pe care doriți să o înghețați, o puteți schimba în funcție de nevoile dvs.


Legate de articole:

Cum să înghețe panourile în Excel 2010?

Cum se aplică panouri de înghețare / dezghețare pe mai multe foi de lucru simultan?


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 (10)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Când folosesc VBA, nu pot copia datele din Main-Sheet pe o altă foaie. Vă rugăm să mă ajutați să remediez această eroare
Acest comentariu a fost redus la minimum de moderatorul de pe site
hahaha. atât de adevărat! ai gasit o solutie pentru asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Codul nu a putut să funcționeze, dar acesta a făcut-o :) Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim sc As Long ' count of sheets Dim NewPos As Long ' index al foii selectate Application.EnableEvents = False Application.ScreenUpdating = False Dacă ActiveSheet.Index 1 Atunci sc = Sheets.Count NewPos = ActiveSheet.Index For i = 2 To NewPos - 1 Sheets(2).Move After:=Sheets(sc) Next i Sheets(1).Activate Sheets(2). Activare End If Application.ScreenUpdating = True Application.EnableEvents = True End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Este posibil să creați unul cu mai multe argumente? De exemplu, în loc să mutați singura foaie principală în fața locului în care lucrați, este posibil să mutați trei file în fața a ceea ce lucrați?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Da, este posibil, trebuie doar să adăugați mai multe argumente la clauza if folosind „ȘI” ca acesta IF Application.ActiveSheet.Index Application.Sheets(„Main-sheet”).Index AND Application.ActiveSheet.Index Application. Sheets("Other-Main-sheet").Index și așa mai departe... Apoi Application.Sheets("Main-sheet").Move Before:=Application.Sheets(Application.Sheets("Other-Main-sheet") .Index) Application.Sheets("Main-sheet").Activate Application.Sheets("Other-Main-sheet").Move Before:=Application.Sheets(Application.ActiveSheet.Index) Application.Sheets ("Other-Main-sheet") -sheet").Activate Sh.Activate Aceasta va plasa Foaia-Principală, apoi Foaia-Cealalt-Principală în fața foii tale active.
Acest comentariu a fost redus la minimum de moderatorul de pe site
este acest vba foaia mea Excel nu îngheață, vă rog să-mi dați o soluție
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acest cod a funcționat bine. Singura problemă este... dacă închidem fișierul și îl deschidem din nou, se stinge.
Acest comentariu a fost redus la minimum de moderatorul de pe site
[quote]Acest cod a funcționat bine. Singura problemă este... dacă închidem fișierul și îl deschidem din nou, se stinge.De Sangs[/quote] Încercați să salvați documentul ca Macro-Enabled Workbook. Cred că așa ar trebui să funcționeze bine.
Acest comentariu a fost redus la minimum de moderatorul de pe site
După cum a subliniat Thuyen în urmă cu 2 ani, nu puteți copia date între foi în timp ce acest cod este activ. În plus, codul este complicat inutil. Foaia pe care o activați este trecută în procedură ca parametru „Sh”. Acest lucru face ca apelurile frecvente către „ActiveSheet” să fie inutile și ar putea cauza probleme cuiva care încearcă să modifice codul, dar nu are foarte multă experiență.

Iată versiunile mele care corectează aceste probleme și chiar arată cum să adăugați o a doua foaie „principală” (similar cu ceea ce a postat Dzingai):
-------------------------------------------------- ---------------

„Aceste 2 rânduri nu sunt necesare dacă folosiți numele de cod ale foilor, pe care vi le recomand.
Set shtMain1 = Foi de lucru ("Main-Sheet-1")
Set shtMain2 = Foi de lucru ("Main-Sheet-2")

Dacă Application.CutCopyMode = False, atunci
Dacă Sh.Index <> shtMain1.Index și Sh.Index <> shtMain2.Index, atunci
shtMain1.Move before:=Sh
shtMain2.Move before:=Sh
Sh.Activare
Final, dacă
Final, dacă
Acest comentariu a fost redus la minimum de moderatorul de pe site
chăng đc gi cả
Nu există comentarii postate aici încă
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