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

Cum se previne ștergerea conținutului celulei specifice în Excel?

Acest articol vorbește despre prevenirea ștergerii anumitor conținuturi de celule în Excel. O puteți realiza cu metodele din acest articol.

Împiedicați ștergerea conținutului specific al celulei protejând foaia de lucru
Împiedicați ștergerea conținutului specific al celulei utilizând codul VBA


Împiedicați ștergerea conținutului specific al celulei protejând foaia de lucru

În mod implicit, toate celulele din foaia de lucru sunt blocate. Dacă doriți să împiedicați ștergerea anumitor conținuturi de celule și să modificați alte celule după protejare, procedați după cum urmează.

1. Faceți clic pe butonul din colțul din stânga sus al foii de lucru pentru a selecta întreaga foaie de lucru. Apoi apăsați Ctrl + 1 tastele pentru a deschide Celule de format căsuță de dialog.

2. În fereastra pop-up Celule de format caseta de dialog, debifați blocat opțiune în cadrul Protecţie , apoi faceți clic pe OK buton. Vedeți captura de ecran:

3. Selectați celulele pe care nu doriți ca conținutul să fie șterse, apăsați Ctrl + 1 taste pentru a deschide Celule de format caseta de dialog din nou, verificați blocat opțiune în cadrul Protecţie , apoi faceți clic pe OK butonul.

4. Acum faceți clic pe Recenzie > Protejați foaia, apoi specificați și confirmați parola în ambele Protejați foaia și confirma parola casete de dialog.

Acum foaia de lucru este protejată. Și conținutul celulei specificat nu va mai fi șters.


Împiedicați ștergerea conținutului specific al celulei utilizând codul VBA

Pe lângă cele două metode de mai sus, puteți rula codul VBA pentru a preveni ștergerea conținutului celulei specifice într-o foaie de lucru. Vă rugăm să faceți următoarele.

1. Deschideți foaia de lucru care conține conținutul celulei pe care nu doriți să o ștergeți, faceți clic dreapta pe fila Foaie, apoi faceți clic pe Afișați codul din meniul cu clic dreapta.

2. Copiați și lipiți codul VBA de mai jos în fereastra Cod a Microsoft Visual Basic pentru aplicații fereastră.

Cod VBA: împiedicați ștergerea conținutului specific al celulei în Excel

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1:E7")) Is Nothing Then Exit Sub
    On Error GoTo ExitPoint
    Application.EnableEvents = False
    If Not IsDate(Target(1)) Then
        Application.Undo
        MsgBox " You can't delete cell contents from this range " _
        , vbCritical, "Kutools for Excel"
    End If
ExitPoint:
    Application.EnableEvents = True
End Sub

notițe: În cod, A1: E17 este intervalul pe care conținutul celulei pe care îl veți împiedica să fie șters. Puteți schimba gama în funcție de nevoile dvs.

De acum înainte, când încercați să ștergeți conținutul celulei din intervalul A1: E17, veți obține un Kutools pentru Excel caseta de dialog, așa cum este prezentată mai jos, faceți clic pe OK butonul.


Articole pe aceeași temă:


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 (17)
Evaluat 5 din 5 · evaluări 1
Acest comentariu a fost redus la minimum de moderatorul de pe site
Exact ceea ce cautam, multumesc pentru ajutor!
Acest comentariu a fost redus la minimum de moderatorul de pe site
nu-ți face griji mereu aici pentru a te ajuta :)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut,

Tocmai am încercat scriptul VBA și deși funcționează foarte bine în majoritatea situațiilor. Cu toate acestea, nu funcționează când treceți dintr-o celulă editabilă în coloana/celula needitabilă. Problema apare prin faptul că afișează mesajul de eroare - așa cum a fost comandat - dar nu păstrează datele care au fost introduse în celula originală, editabilă, din care a fost filată.

Ați avea un amendament la script, astfel încât să accepte datele din celula editabilă atunci când introduceți fila în needitabil?

Noroc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua,
Am încercat așa cum ați menționat în cazul dvs., dar nu a apărut o eroare. Ați oferi o captură de ecran a cazului dvs. sau ați spune versiunea dvs. Office?
Vă mulțumim pentru comentariu.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dacă nu doriți să vă uitați foaia sau să scrieți codul VBA, atunci folosesc o tehnică simplă care împiedică orice modificare, cu excepția cazului în care folosesc tasta „ȘTERGERE” (backspace nu va fi permis, dar Ștergerea este greu de oprit ). Ceea ce am făcut a fost adăugat o validare a datelor cu următoarele setări:

1) Permite --> Listă

2) debifați „Ignorare necompletat” și „menu derulant în celulă”

3) În sursă introduceți două ghilimele duble (adică "")

4) În fila Alertă de eroare, bifați „Afișați modificarea erorii după ce sunt introduse date invalide”, selectați „Oprire” pentru stil, apoi introduceți un mesaj de eroare și o descriere (de exemplu, Nu înlocuiți)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună,
Multumesc pentru partajarea.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cod VBA - Sfat excelent, mulțumesc

Există un cod VBA pentru a preveni modificarea ȘI ștergerea anumitor conținuturi de celule în Excel?
Foaia de protecție obișnuită nu funcționează pentru mine, deoarece îmi pierd capacitatea de a sorta datele?

Mulțumesc anticipat - Neil
Acest comentariu a fost redus la minimum de moderatorul de pe site
„Preveniți ștergerea anumitor conținuturi de celule prin protejarea foii de lucru” Am făcut conform ghidului dvs., informațiile despre celulă ar putea fi șterse, adică protecția nu funcționează. Orice solutie.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Ahsan,
Ai aplicat metoda VBA?
Trebuie să adăugați VBA la fereastra de cod al foii de lucru. Presupunând că conținutul celulei pe care doriți să îl protejați se află în Sheet9, vă rugăm să faceți clic dreapta pe fila foii și selectați Vizualizare cod din meniul contextual, apoi copiați direct codul în fereastra de cod, așa cum se arată în imaginea de mai jos.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, acest cod funcționează bine, totuși ștergerea rândului/coloanei îl va ocoli. Există vreo soluție pentru asta? Noroc, David.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hi David,
Ce versiune de Excel folosești? Am încercat codul, rândurile și coloanele întregi din intervalul specificat nu pot fi șterse după aplicarea codului.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vă mulțumim pentru informațiile valoroase.
În ceea ce privește VBA de mai jos:
Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)
Dacă Intersect(Target, Range("A1:E7")) nu este nimic, atunci ieșiți din sub
La eroare GoTo ExitPoint
Application.EnableEvents = Fals
If Not IsDate(Target(1)) Atunci
Aplicație.Anulați
MsgBox „Nu puteți șterge conținutul celulelor din acest interval” _
, vbCritical, „Kutools pentru Excel”
Final, dacă
Punct de ieșire:
Application.EnableEvents = Adevărat
End Sub

Cele de mai sus vor permite execuția într-un anumit interval specificat. Nu permite adăugarea de noi rânduri. Există vreo modalitate prin care pot fi adăugate noi rânduri, menținând totuși aceeași protecție.
mulțumiri și respect
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Oussama Abou Faraj,
După ce am încercat cu diverse metode, se pare că nu reușesc să fac asta să funcționeze. După adăugarea unui nou rând, zona va fi blocată Imediat, iar celula nou introdusă nu poate fi editată.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Este posibil să faci ceva similar la nivel de registru de lucru?

Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)
Dacă Intersect(Target, Range("A1:M7000")) nu este nimic, atunci ieșiți din sub
La eroare GoTo ExitPoint
Application.EnableEvents = Fals
If Not IsDate(Target(1)) Atunci
Aplicație.Anulați
MsgBox „Nu puteți șterge conținutul celulelor din acest interval” _
, vbCritical, „Kutools pentru Excel”
Final, dacă
Punct de ieșire:
Application.EnableEvents = Adevărat
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut Gelu,
Vrei să împiedici ștergerea intervalului „A1:M7000” din toate foile de lucru din registrul de lucru curent?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Nu, am vrut să NU permit ștergerea (fără a proteja wks sau wkb).

Este bine că mai sus funcționează la nivel Wks.

Dacă există ceva care să o facă să funcționeze la nivel de wkb, ar fi și mai bine (am multe foi)

G
Acest comentariu a fost redus la minimum de moderatorul de pe site
Asta-i grozav. Mă întrebam dacă aceasta este o opțiune și desigur că a fost. Vă mulțumim pentru instrucțiunile foarte ușoare.

Andres S.
Evaluat 5 din 5
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