Namig: drugi jeziki so prevedeni v Google. Lahko obiščete English različico te povezave.
Vpiši se
x
or
x
x
Registracija
x

or

Kako zakleniti ali zamrzniti zavihek delovnega lista v Excelu?

Če imate delovni zvezek, ki vsebuje več delovnih listov, je delovni list z imenom Main-sheet kot prvi zavihek v delovnem zvezku. In zdaj, poskusite zakleniti ali zamrzniti kartico listov, da bo vedno vidna, tudi če se pomikate po več delovnih preglednicah. Pravzaprav ni neposrednega načina za zamrznitev kartice, vendar lahko za rešitev te težave uporabite rešitev.

Zaklenite ali zamrznite določen zavihek delovnega lista s kodo VBA


Zamrznite / Odmrznite okna več delovnih listov:
Kutools za Excel 's Zamrznite / Odmrznite okna več delovnih listov vam lahko z enim klikom pomaga zamrzniti ali odmrzniti vse delovne liste v vaši delovni zvezki.
doc zamrzne več listov 1

puščica modra desno mehurček Zaklenite ali zamrznite določen zavihek delovnega lista s kodo VBA


V Excelu lahko uporabimo naslednjo kodo VBA, da določen delovni list vedno najdete pred trenutnim jezičkom z zavihkom, ki ga kliknete, tako da si lahko vedno ogledate ta delovni list, ko se pomikate po vseh drugih zavihkih listov. Prosimo, naredite naslednje:

1. Drži dol ALT + F11 tipke in odpre Okno Microsoft Visual Basic za aplikacije.

2. Potem izberite ThisWorkbook od leve Raziskovalec projekta podokno, dvokliknite, da odprete Moduli, nato pa kopirajte in prilepite po kodi VBA v prazno Modul:

VBA koda: zamrzne ali zaklepanje določenega zavihka delovnega lista

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Update 20150306
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. In nato shranite in zaprite to kodo, zdaj ko kliknete katerega koli od vaših zavihkov v delovnem listu, bo ta poseben delovni list vedno na sprednji strani zavihka z zavihanimi listi, glej slike s posnetkov:

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

Opombe: V zgornji kodi je glavna lista ime lista, ki ga želite zamrzniti, lahko ga spremenite v svoje potrebe.


Sorodni članki:

Kako zamrzniti panoge v Excelu 2010?

Kako uporabiti zamrzne / odmrzniti okna na več delovnih listov hkrati?



Priporočena orodja za produktivnost za Excel

Kutools za Excel vam pomaga, da vedno končate delo pred časom in izstopite iz množice

  • Več kot zmogljive napredne funkcije 300, zasnovane za 1500 delovne scenarije, ki povečujejo produktivnost z 70%, vam dajejo več časa za skrb za družino in uživanje v življenju.
  • Ne potrebujete več pomnilniških formul in VBA kod, od zdaj naprej pa dajate svojim možganom počitek.
  • Postanite strokovnjak za Excel v minutah 3, zapletene in ponavljajoče se operacije lahko opravite v nekaj sekundah,
  • Vsak dan zmanjšajte število operacij tipkovnice in miške, zdaj se poslovite od poklicnih bolezni.
  • 110,000 visoko učinkovite ljudi in 300 + svetovno priznanih podjetij izbiro.
  • Brezplačna preizkusna različica 60 dneva. 60-dnevno jamstvo vračila denarja. 2 let brezplačne nadgradnje in podpore.

Prinaša kartično brskanje in urejanje za Microsoft Office, veliko močnejši od zavihkov brskalnika

  • Office Tab je namenjen za Word, Excel, PowerPoint in druge Office aplikacije: Založnik, Dostop, Visio in Projekt.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Z 50% poveča vašo produktivnost in vsak dan zmanjša na stotine klikov z miško!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Xuan · 9 months ago
    chăng đc gi cả
  • To post as a guest, your comment is unpublished.
    Jesse · 1 years ago
    As Thuyen pointed out 2 years ago, you can't copy data between sheets while this code is active. Furthermore, the code is needlessly complicated. The sheet that you activate is passed to the procedure as the parameter "Sh". This makes the frequent calls to "ActiveSheet" unnecessary, and could cause problems for someone who's trying to modify the code but isn't very experienced.

    Here's my versions that corrects those issues, and even shows how to add a 2nd "Main" sheet (similar to what Dzingai posted):
    -----------------------------------------------------------------

    'These 2 lines aren't necessary if you use the sheets' codenames, which I recommend.
    Set shtMain1 = Worksheets("Main-Sheet-1")
    Set shtMain2 = Worksheets("Main-Sheet-2")

    If Application.CutCopyMode = False Then
    If Sh.Index <> shtMain1.Index And Sh.Index <> shtMain2.Index Then
    shtMain1.Move before:=Sh
    shtMain2.Move before:=Sh
    Sh.Activate
    End If
    End If
  • To post as a guest, your comment is unpublished.
    Sangs · 1 years ago
    This code worked well. Only problem is...if we close the file & open it again it goes off.
    • To post as a guest, your comment is unpublished.
      Dzingai · 1 years ago
      [quote name="Sangs"]This code worked well. Only problem is...if we close the file & open it again it goes off.[/quote]
      Try saving document as Macro-Enabled Workbook. I think it should work well that way.
  • To post as a guest, your comment is unpublished.
    Pablo · 2 years ago
    Is it possible to create one with multiple arguments? Like instead of just moving the one main sheet to the front of where you are working, is it possible to move three tabs in front of what you are working on?
    • To post as a guest, your comment is unpublished.
      dzingai · 1 years ago
      Yes, it is possible, you just have to add more arguments to the if clause using the "AND" like this

      IF Application.ActiveSheet.Index Application.Sheets("Main-sheet").Index AND Application.ActiveSheet.Index Application.Sheets("Other-Main-sheet").Index and so on...
      Then
      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").Activate
      Sh.Activate
      This will place the Main-Sheet, then the Other-Main-Sheet in front of your active sheet.
  • To post as a guest, your comment is unpublished.
    MEESHA · 3 years ago
    Could not get your code to work, but this one did :)

    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Dim sc As Long ' count of sheets
    Dim NewPos As Long ' index of serlected sheet

    Application.EnableEvents = False
    Application.ScreenUpdating = False

    If ActiveSheet.Index 1 Then
    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).Activate
    End If

    Application.ScreenUpdating = True
    Application.EnableEvents = True
    End Sub