Note: The other languages of the website are Google-translated. Back to English
English English
  • Documente
  • Excel
  • Cum se blochează sau se protejează celulele după introducerea sau introducerea datelor în Excel?

Cum se blochează sau se protejează celulele după introducerea sau introducerea datelor în Excel?

Presupunând că aveți o foaie de lucru și doar o anumită gamă de celule goale necesită introducerea datelor, iar după ce ați terminat introducerea datelor, aveți nevoie ca celulele să fie blocate automat pentru a preveni din nou modificările. Cum poți face pentru a o realiza? Acest articol vă poate ajuta.

Blocați sau protejați celulele după introducerea sau introducerea datelor cu cod VBA


Blocați sau protejați celulele după introducerea sau introducerea datelor cu cod VBA

De exemplu, o anumită gamă de celule goale este A1: F8. Vă rugăm să faceți următoarele pentru a bloca aceste celule după introducerea datelor în Excel.

1. Deblocați mai întâi acest interval, selectați celulele și faceți clic dreapta, apoi alegeți Celule de format în meniul cu clic dreapta și în Celule de format casetă de dialog, debifând fișierul blocat caseta de sub protecţie , apoi faceți clic pe OK buton. Vedeți captura de ecran:

2. clic Recenzie > Protejați foaia. Și specificați o parolă pentru a proteja această foaie de lucru.

3. Faceți clic dreapta pe fila foi, selectați Afișați codul din meniul cu clic dreapta. Apoi copiați și lipiți codul VBA de mai jos în fereastra Cod. Vedeți captura de ecran:

Cod VBA: Blocați sau protejați celulele după introducerea sau introducerea datelor

Dim mRg As Range
Dim mStr As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
    mStr = mRg.Value
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xRg As Range
    On Error Resume Next
    Set xRg = Intersect(Range("A1:F8"), Target)
    If xRg Is Nothing Then Exit Sub
    Target.Worksheet.Unprotect Password:="123"
    If xRg.Value <> mStr Then xRg.Locked = True
    Target.Worksheet.Protect Password:="123" 
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
     mStr = mRg.Value
End If
End Sub

notițe: În cod, „A1: F8” este intervalul de care aveți nevoie pentru a introduce date; iar „123” este parola acestei foi de lucru protejate. Vă rugăm să le schimbați după cum aveți nevoie.

4. presa Alt + Q tastele simultan pentru a închide Microsoft Visual Basic pentru aplicații fereastră.

După terminarea introducerii datelor în celulele din intervalul A1: F8, acestea vor fi blocate automat. Și veți primi o casetă de dialog promptă dacă încercați să modificați orice conținut de celulă din acest interval. Vedeți captura de ecran:


Articole pe aceeași temă:


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea prin
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
    caracteristici puternice
    . Suporta Office/Excel
    2007-2019 și 365
    . Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Caracteristici complete
    30
    - zi de probă gratuită. 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.
  • Îți crește productivitatea cu
    50%
    , și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (74)
Evaluat 5 din 5 · evaluări 1
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, am o foaie de calcul cu intervalul A3:AN219, aș dori să protejez acest interval pe măsură ce introducerea este completă. Vă rog să mă ajutați la asta. Am încercat codul de mai sus, dar nu merge la mine
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acest lucru nu funcționează când redeschide fișierul Excel, vă rugăm să ajutați
Acest comentariu a fost redus la minimum de moderatorul de pe site
Încercați în schimb acest cod: Private Sub Worksheet_Change(ByVal Target As Range) Dim MyRange As Range Set MyRange = Intersect(Range("A1:D100"), Target) If Not MyRange Is Nothing Then Sheets("Sheet1").Deprotejați parola: ="hello" MyRange.Locked = True Sheets("Sheet1").Protect password:="hello" End If End Sub Și nu uitați să schimbați intervalul (A1:D100), parola (hello) și foaia (Sheet1) numele/numerele daca nu se potriveste cu cele de mai sus :)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc pentru cod. Vă rog să-mi spuneți cum să blochez automat celulele (asemănătoare cu cele enumerate de dvs.) NUMAI DUPĂ salvarea fișierului
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, domnule, mă confrunt cu o problemă cu același cod în timp ce folosesc acest cod cu alte cobe în VBA. Vă rog să-mi sugerați o soluție. Mulțumesc și Cu stima Gourav
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dragă Gourav,
Îmi pare rău că nu pot rezolva această problemă.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am încercat codul și mi s-a părut că funcționează oarecum. Totuși, îmi permite să șterg data introdusă în celulă, dar mă oprește doar când încerc să introduc altceva. Există vreo modalitate de a împiedica ștergerea datelor?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dragă Stacy,
Aceeași problemă nu apare în cazul meu. Codul împiedică utilizatorii să introducă și să șteargă date din intervalul specificat. Ați furniza versiunea dvs. Office pentru teste suplimentare?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pentru oricine s-ar fi putut împiedica aici de la acest comentariu. Dacă trebuie să deblocați foaia de lucru de fiecare dată când completați o celulă, atunci trebuie mai întâi: - Deblocați foaia de calcul - Evidențiați zona foii de lucru peste care se aplică codul - Faceți clic dreapta și mergeți la „Format celule” - Accesați fila din dreapta numită „Protecție” și debifați secțiunea „Blocat” (Chiar dacă apare ca o umplere solidă în loc de bifă) După aceea, veți putea introduce date în mai multe celule fără a fi nevoie să deblocați de fiecare dată. Rețineți că dacă trebuie să revedeți celulele blocate pentru a șterge sau edita informații, poate fi necesar să repetați pașii de mai sus. Sper că acest lucru vă ajută.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Îmi place să blochez doar celulele editate. odată ce introduc orice date în celulele goale, trebuie să blochez celula editată pentru a fi blocată automat, dar nu și celulele goale.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dragă Subhash,
După utilizarea codului, numai celulele editate sunt blocate în intervalul specificat. Și puteți introduce în continuare date în celulele goale din intervalul specificat, după cum aveți nevoie. După completarea celulei goale, aceasta va fi blocată automat.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Nu, blochează întregul interval dintr-o dată după o introducere de date într-o celulă din interval
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dragă Pradip,
Ce versiune de Office folosești?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc pentru codare, dar am o problemă să pun 2 codări într-o singură foaie, vă rog ajutor.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dragă Târg,
Îmi pare rău că nu pot rezolva această problemă.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună,
Domnule, vreau să blochez după datele introduse o singură dată!
De parcă urmăresc un client și scriu starea, atunci niciun alt angajat nu poate edita sau modifica asta!
Acest comentariu a fost redus la minimum de moderatorul de pe site
O zi buna,
Metoda din acest post vă poate ajuta și să rezolvați această problemă.
Acest comentariu a fost redus la minimum de moderatorul de pe site
celulele nu sunt nici măcar editabile...ce a mers prost nu înțeleg pls ajuta
Acest comentariu a fost redus la minimum de moderatorul de pe site
O zi buna,
La început, trebuie să setați celulele specificate la Deblocat pentru editare și apoi să protejați foaia de lucru. Și în sfârșit aplicați scriptul VBA.
Acest comentariu a fost redus la minimum de moderatorul de pe site
trebuie codat?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hi


Vreau ca acesta să blocheze intervalul după intrarea într-o celulă din interval, vă rugăm să ne sfătuiți cum trebuie să editez acest lucru pentru a face acest lucru. Vă mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hi
editarea codului există o modalitate prin care pot să blocheze toate celulele din interval după ce datele au fost introduse într-o celulă din acel interval? astfel încât ei pot introduce date doar într-o singură celulă în intervalul nu multiplu.


mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dragă Jackie,
Codul VBA de mai jos vă poate ajuta să rezolvați problema.

Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)
Dim xRg As Range
Dim xSRg As Range
La data de eroare CV următoare
Setați xSRg = Interval ("A1:F8")
Set xRg = Intersect(xSRg, Target)
Dacă xRg nu este nimic, ieșiți din sub
Target.Worksheet.Unprotect Password:="123"
xSRg.Locked = Adevărat
Target.Worksheet.Protect Password:="123"
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna,
Există vreo modalitate de a bloca doar celulele, mai degrabă decât întreaga foaie? De exemplu, dacă un utilizator introduce „Da” în A2, atunci A2 se va bloca imediat pentru a nu permite nicio modificare. Aș vrea totuși dacă alții ar putea edita și orice altă celulă. Mulțumiri!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Smith,
Codul VBA de mai jos vă poate ajuta să rezolvați problema. Vă rugăm să încercați și vă mulțumesc pentru comentariu.

Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)
La data de eroare CV următoare
Target.Worksheet.Unprotect Password:="123"
Target.Locked = Adevărat
Target.Worksheet.Protect Password:="123"
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună dimineața,

Există vreun fel de a împiedica un utilizator să facă clic dreapta pe „vezi codul” și să vadă parola de administrator?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Nu contează, am înțeles.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum? nu am inteles...
Acest comentariu a fost redus la minimum de moderatorul de pe site
buna, am nevoie de ajutor


De fapt, fac o listă de lucru pentru un grup mare de oameni, iar această foaie este accesibilă tuturor, astfel încât să-și poată introduce cererile pentru zile libere/concedii anuale etc. Cu toate acestea, vreau să limitez doar un număr de persoane aflate în concediu pentru fiecare zi (maximum 5 în concediu) și după ce 5 cereri de concediu sunt introduse pentru ziua respectivă, niciun alt organism nu mai poate completa cereri pentru acea dată anume.


Există vreun cod/funcție care să calculeze numărul de solicitări specifice pe zi, atunci când cota este atinsă, apoi celelalte celule sunt blocate pentru ca cererile să nu depășească? mulțumesc anticipat
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua,
Bine ați venit să postați orice întrebare pe forumul nostru: https://www.extendoffice.com/forum.html.
Veți primi mai multe suporturi Excel de la profesioniștii noștri sau de la alți fani Excel.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, această postare a fost foarte utilă și funcționează perfect. Cu toate acestea, filtrele mele nu mai funcționează când celulele se blochează. Există o cale de a ocoli asta? Mulțumiri!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Kim,
Îmi pare rău, nu te pot ajuta cu asta. Caracteristica de filtrare este dezactivată în mod implicit într-o foaie de lucru protejată.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc omule, asta mi-a salvat slujba : D
Acest comentariu a fost redus la minimum de moderatorul de pe site
când ies din fișierul care funcționează în prezent și l-am deschis din nou, am găsit că noua celulă nu este blocată după introducerea datelor, doar celula anterioară a găsit blocare. orice solutie
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna Nazmul,
Trebuie să salvați registrul de lucru ca registru de lucru Excel Macro-Enabled înainte de a-l închide.
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