İpucu: Digər dillər Google-tərcümə olunur. Sizi ziyarət edə bilərsiniz English bu linkin versiyası.
Daxil ol
x
or
x
x
Qeydiyyatdan
x

or

Excel-də iş kitabçasını necə kilitləmək və ya dondurmaq olar?

Çox iş kitabını ehtiva edən bir iş kitabınız olduğunu düşünsəniz, iş kitabçasındakı ilk sekmə kimi Main-sheet adlı bir iş var. İndi bir sıra iş səhifələrində hərəkət etsəniz belə, həmişə bu səhifənin sekmesini kilitləmək və ya dondurmaq üçün cəhd etmək istəyir. Əslində, sekmeyi dondurmaq üçün birbaşa yol yoxdur, ancaq bu problemlə məşğul olmaq üçün bir müddətə istifadə edə bilərsiniz.

VBA kodu ilə müəyyən bir iş səhifəsinə baxın və ya dondurun


Dondurma / boşaltma panelləri birdən çox iş kitabçası:
Excel üçün Kutools 's Dondurmaq / boşaltmaq birdən çox iş kitabçası bir klik ilə iş kitabınızdakı bütün işlərin dondurulması və ya dondurulmasına kömək edə bilər.
1 birdən çox səhifəni dondur

arrow mavi sağ bubble VBA kodu ilə müəyyən bir iş səhifəsinə baxın və ya dondurun


Excel-də, hər hansı digər hesabat sekmeleri arasında keçid edərkən həmişə bu iş səhifəsini görə bilərsiniz ki, cari tıklanan iş səhifənizdən əvvəl xüsusi iş səhifəsini həmişə etmək üçün aşağıdakı VBA kodunu tətbiq edə bilərik. Xahiş edirəm:

1. Basıb saxlayın ALT + F11 düymələri və açar Proqramlar üçün Microsoft Visual Basic.

2. Sonra seçin BuWorkbook soldan Layihə Explorer bölməni açmaq üçün cüt basın Modules, sonra VBA kodunu aşağıdakı blank moduluna kopyalayıb yapışdırın:

VBA kodu: Belirli bir iş kitabçasını dondurun və ya kilitləyin

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. İş kitabçınızın hər hansı bir nişanını tıkladığınızda, indi bu kodu saxlamaq və bağlamaq üçün bu xüsusi iş səhifəsi həmişə tıklanan hesabatı sekmenizin qarşısında olacaq, ekran görüntülərinə baxın:

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

Qeyd: Yuxarıda göstərilən kodda Əsas səhifə dondurmaq istədiyiniz hesabatın adıdır, siz onu ehtiyacınıza dəyişə bilərsiniz.


Related articles:

Excel 2010-də panelləri necə dondurmaq olar?

Dondurma / boşluqları birdən çox iş səhifəsinə birdəfəlik necə tətbiq etmək olar?



Təklif olunan Məhsuldarlıq Vasitələri

Office Tab

qızıl star1 Chrome, Firefox və yeni Internet Explorer kimi Excel və digər Office proqramlarına lazımlı sekmeleri gətirin.

Excel üçün Kutools

qızıl star1 Amazing! 5 dəqiqədə məhsuldarlığınızı artırın. Heç bir xüsusi bacarıqa ehtiyac yoxdur, hər gün iki saat saxlaya bilərsiniz!

qızıl star1 300 Excel üçün yeni funksiyalar, Excel çox asan və güclü olun:

  • Veriyi ləğv etmədən Cell / Satır / Sütunları birləşdirin.
  • Bir neçə Çarşaf və İş Kitabını birləşdirin və birləşdirin.
  • Çaprazları müqayisə edin, birdən çox aralığa kopyalayın, mətni tarixə, vahidə və valyuta çevrilməsinə çevirin.
  • Rənglər, Paging Subtotals, Advanced Sort və Super Filter tərəfindən sayılan,
  • Daha çox seçin / Insert / Sil / Mətn / Biçim / Bağlantı / Yorum / Çalışma kitabları / Çalışma Qurğuları Tools ...

Excel üçün Kutools-un ekranı

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 · 7 months ago
    chăng đc gi cả
  • To post as a guest, your comment is unpublished.
    Jesse · 10 months 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 · 2 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