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

Jak zapobiec usunięciu określonej zawartości komórki w programie Excel?

W tym artykule jest mowa o zapobieganiu usuwaniu określonej zawartości komórek w programie Excel. Możesz to osiągnąć za pomocą metod opisanych w tym artykule.

Zapobiegaj usunięciu określonej zawartości komórek, chroniąc arkusz
Zapobiegaj usunięciu określonej zawartości komórki za pomocą kodu VBA


Zapobiegaj usunięciu określonej zawartości komórek, chroniąc arkusz

Domyślnie wszystkie komórki w arkuszu są zablokowane. Jeśli chcesz zapobiec usunięciu określonej zawartości komórki i udostępnić inne komórki do edycji po zabezpieczeniu, wykonaj następujące czynności.

1. Kliknij przycisk w lewym górnym rogu arkusza roboczego, aby zaznaczyć cały arkusz. Następnie wciśnij Ctrl + 1 klawisze, aby otworzyć Formatowanie komórek Okno dialogowe.

2. W wyskakującym okienku Formatowanie komórek W oknie dialogowym usuń zaznaczenie opcji Zamknięty opcja pod ochrona kartę, a następnie kliknij przycisk OK przycisk. Zobacz zrzut ekranu:

3. Wybierz komórki, których nie chcesz usuwać zawartości, naciśnij Ctrl + 1 klawisze, aby otworzyć plik Formatowanie komórek ponownie w oknie dialogowym, zaznacz Zamknięty opcja pod ochrona kartę, a następnie kliknij przycisk OK przycisk.

4. Teraz kliknij Przegląd > Chroń arkusz, a następnie określ i potwierdź swoje hasło w obu plikach Chroń arkusz i Potwierdź hasło okna dialogowe.

Teraz arkusz roboczy jest chroniony. A określona zawartość komórki nie zostanie już usunięta.


Zapobiegaj usunięciu określonej zawartości komórki za pomocą kodu VBA

Oprócz powyższych dwóch metod możesz uruchomić kod VBA, aby zapobiec usunięciu określonej zawartości komórki w arkuszu. Wykonaj następujące czynności.

1. Otwórz arkusz zawierający zawartość komórek, których nie chcesz usunąć, kliknij prawym przyciskiem myszy kartę Arkusz, a następnie kliknij Wyświetl kod z menu po kliknięciu prawym przyciskiem myszy.

2. Skopiuj i wklej poniższy kod VBA do okna Code pliku Microsoft Visual Basic for Applications okno.

Kod VBA: Zapobiegaj usunięciu określonej zawartości komórki w programie 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

Uwagi: W kodzie A1: E17 to zakres, w którym zawartość komórki nie zostanie usunięta. Możesz zmienić zakres w zależności od potrzeb.

Odtąd, próbując usunąć zawartość komórki z zakresu A1: E17, otrzymasz plik Kutools dla programu Excel okno dialogowe, jak pokazano na poniższym zrzucie ekranu, kliknij OK przycisk.


Powiązane artykuły:


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół
Sortuj komentarze według
Komentarze (17)
Znamionowy 5 z 5 · 1 oceny
Ten komentarz został zminimalizowany przez moderatora na stronie
Właśnie tego szukałem, dzięki za pomoc!
Ten komentarz został zminimalizowany przez moderatora na stronie
nie martw się zawsze tutaj, aby pomóc :)
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam,

Właśnie wypróbowałem skrypt VBA i chociaż działa naprawdę dobrze w większości sytuacji. Jednak nie działa, gdy przechodzisz z edytowalnej komórki do nieedytowalnej kolumny/komórki. Problem polega na tym, że wyświetla komunikat o błędzie - zgodnie z poleceniem - ale nie zachowuje danych, które zostały wprowadzone w oryginalnej, edytowalnej komórce, z której pochodziły karty.

Czy miałbyś poprawkę w skrypcie, aby akceptował dane w edytowalnej komórce po przejściu na nieedytowalne?

Namaste
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzień dobry,
Próbowałem jak wspomniałeś w twoim przypadku, ale nie wyrzuca żadnych błędów. Czy możesz przesłać zrzut ekranu swojej sprawy lub podać wersję pakietu Office?
Dzięki za komentarz.
Ten komentarz został zminimalizowany przez moderatora na stronie
Jeśli nie chcesz przeglądać arkusza ani pisać kodu VBA, używam prostej techniki, która zapobiega nadpisaniu, z wyjątkiem sytuacji, gdy używają klawisza „DELETE” (backspace nie będzie dozwolony, ale usuwanie jest trudne do zatrzymania ). Dodałem walidację danych z następującymi ustawieniami:

1) Zezwól --> Lista

2) odznacz „Ignoruj ​​puste” i „menu w komórce”

3) W źródle wprowadź dwa podwójne cudzysłowy (tj. "")

4) Na karcie Ostrzeżenie o błędzie zaznacz opcję „Pokaż zmianę błędu po wprowadzeniu nieprawidłowych danych”, wybierz „Zatrzymaj” dla stylu, a następnie wprowadź komunikat o błędzie i opis (np. Nie zastępuj)
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć,
Dzięki za dzielenie się.
Ten komentarz został zminimalizowany przez moderatora na stronie
Kod VBA - świetna wskazówka dzięki

Czy istnieje kod VBA, który zapobiega modyfikowaniu ORAZ usuwaniu określonej zawartości komórki w programie Excel?
Zwykły arkusz ochronny nie działa dla mnie, ponieważ tracę możliwość sortowania danych?

Z góry dziękuję - Neil
Ten komentarz został zminimalizowany przez moderatora na stronie
„Zapobiegaj usuwaniu określonej zawartości komórki, chroniąc arkusz roboczy„Zrobiłem zgodnie z twoimi wytycznymi, nadal informacje o komórkach można usunąć, tj. ochrona nie działa. Dowolne rozwiązanie.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Ahsanie,
Czy zastosowałeś metodę VBA?
Musisz dodać VBA do okna kodu arkusza. Zakładając, że zawartość komórki, którą chcesz chronić, znajduje się w Sheet9, kliknij prawym przyciskiem myszy kartę arkusza i wybierz Wyświetl kod z menu kontekstowego, a następnie skopiuj kod bezpośrednio do okna kodu, jak pokazano na poniższym obrazku.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam, ten kod działa dobrze, jednak usunięcie wiersza/kolumny ominie go. Czy jest jakieś obejście tego? Pozdrawiam, Davidzie.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć David,
Z której wersji programu Excel korzystasz? Wypróbowałem kod, całe wiersze i kolumny w określonym zakresie nie mogą zostać usunięte po zastosowaniu kodu.
Ten komentarz został zminimalizowany przez moderatora na stronie
Dziękuję za cenne informacje.
Odnośnie poniższego VBA:
Prywatny Sub Worksheet_Change (ByVal Target As Range)
Jeśli przecięcie(cel, zakres("A1:E7")) jest niczym, to zakończ Sub
W przypadku błędu Przejdź do punktu wyjścia
Application.EnableEvents = Fałsz
Jeśli nie jest datą (cel (1)), to
Aplikacja.Cofnij
MsgBox " Nie można usunąć zawartości komórki z tego zakresu " _
, vbCritical, "Kutools dla programu Excel"
End If
Punkt wyjścia:
Application.EnableEvents = True
End Sub

Powyższe pozwoli na wykonanie w pewnym określonym zakresie. Nie pozwala na dodawanie nowych wierszy. Czy istnieje sposób na dodawanie nowych wierszy przy zachowaniu tej samej ochrony.
Dziękuję i pozdrawiam
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Oussama Abou Faraj,
Po wypróbowaniu różnymi metodami, nie mogę tego zrobić. Po dodaniu nowego wiersza obszar zostanie natychmiast zablokowany i nowo wstawionej komórki nie będzie można edytować.
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy można zrobić coś podobnego na poziomie skoroszytu?

Prywatny Sub Worksheet_Change (ByVal Target As Range)
Jeśli przecięcie(cel, zakres("A1:M7000")) jest niczym, to zakończ Sub
W przypadku błędu Przejdź do punktu wyjścia
Application.EnableEvents = Fałsz
Jeśli nie jest datą (cel (1)), to
Aplikacja.Cofnij
MsgBox " Nie można usunąć zawartości komórki z tego zakresu " _
, vbCritical, "Kutools dla programu Excel"
End If
Punkt wyjścia:
Application.EnableEvents = True
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Gelu,
Czy chcesz zapobiec usunięciu zakresu „A1:M7000” we wszystkich arkuszach bieżącego skoroszytu?
Ten komentarz został zminimalizowany przez moderatora na stronie
Nie, nie chciałem zezwolić na usuwanie (bez ochrony wks lub wkb).

Fajnie, że powyższe działa na poziomie Wks.

Jeśli jest coś, co sprawi, że zadziała na poziomie wkb byłoby jeszcze lepiej (mam dużo arkuszy)

G
Ten komentarz został zminimalizowany przez moderatora na stronie
To jest świetne. Zastanawiałem się, czy jest taka opcja i na pewno tak. Dziękuję za bardzo proste instrukcje.

Andres S.
Znamionowy 5 z 5
Nie ma tu jeszcze żadnych komentarzy
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL