İ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ə başqa bir hücrenin dəyərlərinə əsaslanan hüceyrələri necə kilitləmək və ya kilidləmək?

Bəzi hallarda hüceyrələri digər hüceyrədə olan dəyərlərə əsasən kilidləmək və ya kilidləmək lazımdır. Məsələn, B1 aralığına ehtiyacınız var: B4 hüceyrə A1 "Qəbul" dəyəri varsa kilidini açmaq üçün; və A1 hücresində "Reddedici" dəyəri varsa, kilidlənir. Bunu bacarmaq üçün necə edə bilərsiniz? Bu yazı sizə kömək edə bilər.

VBA koduyla başqa bir hüduddakı dəyərlərə əsaslanan hüceyrələri kilidləyin və ya kilidini açın


arrow mavi sağ bubble VBA koduyla başqa bir hüduddakı dəyərlərə əsaslanan hüceyrələri kilidləyin və ya kilidini açın


Aşağıdakı VBA kodu hüceyrələri Excel-də başqa bir hücrenin dəyərinə əsasən kilidləmək və ya kilidləməkdə kömək edə bilər.

1. Sehife sekmesini (başqa bir hüceyrədə olan dəyərlərə əsasən kilidləmək və ya açmaq üçün lazım olan hüceyrələri olan təbəqəni) sağa vurun və vurun Kodları baxın sağ tıklayarak menyudan.

2. Sonra, aşağıdakı VBA kodunu Kod pencerəsinə kopyalayıb yapışdırın.

VBA kodu: Digər hüceyrədə olan dəyərlərə əsaslanan hüceyrələrin kilidini və ya kilidini açmaq

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("A1") = "Accepting" Then
        Range("B1:B4").Locked = False
    ElseIf Range("A1") = "Refusing" Then
        Range("B1:B4").Locked = True
    End If
End Sub

3. Basın Dayandırmaq + Q düymələri eyni vaxtda bağlamaq üçün Proqramlar üçün Microsoft Visual Basic pəncərə.

İndi, A1 hücresinə "qəbul" dəyərini daxil edərkən, B1 aralığı: B4 açılır.

A1 hücresinə "Reusing" dəyərini daxil edərkən, müəyyən aralık B1: B4 avtomatik olaraq kilidlənir.


arrow mavi sağ bubbleƏlaqəli məqalələr:



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.
    Mitchyll · 5 months ago
    How would the code be if I wanted to lock a block of cells (Rows 6, 7, and 8/Letters D through U as well as cells F5 and J5) and have them unlock when I put an "X" in cell E5? Thanks in advance!
    • To post as a guest, your comment is unpublished.
      crystal · 3 months ago
      Hi MitchyII,
      Do you mean the specified block of cells have been locked manually in advance and just want to unlock them by typing an "X" in cell E5?
      If remove "X" from cell E5, you do want to lock the ranges again?
      I need more details of the problem.
      Thank you for your comment.
  • To post as a guest, your comment is unpublished.
    Joe · 1 years ago
    Would you kindly advice me on how to correct this? Thank you in advance.

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("A:A") = "SLOW MOVING" Then
    Range("B:B").Locked = True
    ElseIf Range("A:A") = "OVER STOCK" Then
    Range("B:B").Locked = True
    ElseIf Range("A:A") = "NORMAL" Then
    Range("B:B").Locked = False
    End If
    End Sub
    • To post as a guest, your comment is unpublished.
      Noexpert · 11 months ago
      Not being a VB expert i would say you have too many "Elseif" - if you change them all to just IF except for the last one then hopefully that will work.
      Basically If X do this, If Y do this, if Z do this, if none of those - do this.
  • To post as a guest, your comment is unpublished.
    Joe · 1 years ago
    Can you guide me on what's wrong here please? Thank you in advance.

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("K:K") = "OVER STOCK" Then
    Range("S:S").Locked = True
    ElseIf Range("K:K") = "SLOW MOVING" Then
    Range("S:S").Locked = True
    ElseIf Range("K:K") = "NORMAL" Then
    Range("S:S").Locked = False
    ElseIf Range("K:K") = "SHORTAGE" Then
    Range("S:S").Locked = False
    End If
    End Sub
  • To post as a guest, your comment is unpublished.
    KB · 1 years ago
    I prepare a warehouse stock management in excel template.To deliver a stock i have to issue a gate pass.I want to each gate pass,corresponding data will be updated in daily stock take page.With the change of gate pass serial no,the row will be locked and next will be filled up.
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Good Day,
      Would be nice if you can upload your workbook here. Thank you for your comment.
  • To post as a guest, your comment is unpublished.
    Andor Veres · 1 years ago
    Hi,
    I am really new to this.
    I have been trying to put an invoicing system together in excel.
    I created 3 sheets.
    1. Invoice template (Invoice)- Just a generic invoice that is sent to my agents weekly.

    2. A data sheet (Data sheet) to be exact - where the invoice can read the company name adress etc, so if anything changes the invoice will be automatically updated.

    3. A calendar tab (Calendar 2018) to be exact - that is referenced in the invoice template, and puts the corresponding date and invoice number on the actual invoices.

    What I want to do.
    The calendar tab would be my main page, I added a status drop down cell for each week with options "Active" and "Closed". I would like to Lock the whole "Invoice" tab if the corresponding cell is set to "Closed".

    I hope you guys understand what I am trying to do.
    Thanks in advance.
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Dear Ando Veres.
      The below VBA code can help you. Please place the code into the sheet code window of Calendar 2018 change A1 to your drop down cell. Thank you.

      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim xRg As Range
      On Error Resume Next
      Set xRg = Intersect(Target, Range("A1"))
      If xRg Is Nothing Then Exit Sub
      If Target.Validation.Type >= 0 Then
      If Target.Value = "Closed" Then
      Sheets("Data Sheet").Protect
      ElseIf xRg.Value = "Active" Then
      Sheets("Data Sheet").Unprotect
      End If
      End If
      End Sub