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

Jak zabránit odstranění konkrétního obsahu buněk v aplikaci Excel?

Tento článek hovoří o tom, jak zabránit odstranění konkrétního obsahu buněk v aplikaci Excel. Můžete toho dosáhnout metodami v tomto článku.

Zabraňte odstranění konkrétního obsahu buněk ochranou listu
Zabraňte odstranění konkrétního obsahu buněk pomocí kódu VBA


Zabraňte odstranění konkrétního obsahu buněk ochranou listu


Ve výchozím nastavení jsou všechny buňky v listu uzamčeny. Pokud chcete zabránit smazání konkrétního obsahu buněk a po ochraně upravit další buňky, proveďte následující.

1. Klepněte na tlačítko tlačítko v levém horním rohu listu vyberte celý list. Poté stiskněte Ctrl + 1 klávesy pro otevření Formát buněk dialogové okno.

2. Ve vyskakovacím okně Formát buněk zrušte zaškrtnutí políčka Zamčený možnost podle Ochrana a potom klepněte na tlačítko OK knoflík. Viz screenshot:

3. Vyberte buňky, u kterých nechcete odstranit obsah, stiskněte Ctrl + 1 klávesy pro otevření Formát buněk v dialogovém okně znovu zkontrolujte Zamčený možnost podle Ochrana a potom klepněte na tlačítko OK .

4. Nyní klikněte přezkoumání > Chraňte plech, poté zadejte a potvrďte své heslo v obou Chraňte plech a Potvrďte heslo dialogová okna.

Nyní je list chráněn. A zadaný obsah buňky již nebude odstraněn.


Zabraňte odstranění konkrétního obsahu buněk pomocí kódu VBA

Kromě výše uvedených dvou metod můžete spustit kód VBA, abyste zabránili smazání konkrétního obsahu buněk v listu. Postupujte prosím následovně.

1. Otevřete list obsahující obsah buňky, který nechcete odstranit, klikněte pravým tlačítkem na kartu List a poté klikněte na Zobrazit kód z nabídky pravého tlačítka myši.

2. Zkopírujte a vložte níže uvedený kód VBA do okna Kód v Microsoft Visual Basic pro aplikace okno.

Kód VBA: Zabraňte odstranění konkrétního obsahu buněk v aplikaci 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

Poznámka: V kódu je A1: E17 rozsah, ve kterém obsah buňky, které zabráníte, aby byl odstraněn. Rozsah můžete změnit podle svých potřeb.

Od této chvíle, když se pokusíte odstranit obsah buňky z rozsahu A1: E17, dostanete a Kutools pro Excel V dialogovém okně níže zobrazeném snímku obrazovky klikněte na ikonu OK .


Související články:


Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2019 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Kompletní funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50% a omezuje stovky kliknutí myší každý den!
officetab dno
Komentáře (16)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Přesně to, co jsem hledal, děkuji za pomoc!
Tento komentář byl moderátorem webu minimalizován
neboj se, vždy tu pomůžeš :)
Tento komentář byl moderátorem webu minimalizován
Ahoj,

Právě jsem vyzkoušel skript VBA a ve většině situací funguje opravdu dobře. To však nefunguje, když přejdete z upravitelné buňky do neupravitelného sloupce/buňky. Problém nastává v tom, že vyhodí chybovou hlášku - jak bylo přikázáno -, ale neuchová data, která byla zadána v původní, upravitelné buňce, ze které bylo tabelováno.

Měli byste dodatek ke skriptu tak, aby přijímal data v upravitelné buňce, když přejdete do neupravitelné?

Na zdraví
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Zkoušel jsem to, jak jste uvedl ve vašem případě, ale nevyskytla se žádná chyba. Poskytli byste snímek obrazovky svého případu nebo mi sdělili svou verzi Office?
Díky za váš komentář.
Tento komentář byl moderátorem webu minimalizován
Pokud nechcete prohlížet svůj list nebo psát kód VBA, pak používám jednoduchou techniku, která zabraňuje jakémukoli přepsání, kromě případů, kdy používají klávesu „DELETE“ (backspace nebude povolen, ale Delete je těžké zastavit ). Co jsem udělal, je přidání ověření dat s následujícím nastavením:

1) Povolit --> Seznam

2) zrušte zaškrtnutí políčka "Ignorovat prázdné" a "rozbalovací nabídka v buňce"

3) Do zdroje zadejte dvě dvojité uvozovky (tj. "")

4) V záložce Error Alert zaškrtněte "Zobrazit chybu změnit po zadání neplatných dat", zvolte "Stop" pro styl a poté zadejte chybovou zprávu a popis (např. Don't override)
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Díky za sdílení.
Tento komentář byl moderátorem webu minimalizován
VBA kód – skvělý tip, díky

Existuje kód VBA, který zabrání úpravě a odstranění obsahu konkrétní buňky v aplikaci Excel?
Obvyklý ochranný list mi nefunguje, protože ztrácím možnost třídit data?

Předem děkuji - Neil
Tento komentář byl moderátorem webu minimalizován
"Zabránit smazání konkrétního obsahu buňky ochranou listu" Udělal jsem to podle vašeho pokynu, přesto lze informace o buňce odstranit, tj. ochrana nefunguje. Jakékoliv řešení.
Tento komentář byl moderátorem webu minimalizován
Ahoj Ahsane,
Použili jste metodu VBA?
Musíte přidat VBA do okna kódu listu. Předpokládejme, že obsah buňky, který chcete chránit, je v Listu 9, klikněte prosím pravým tlačítkem na záložku listu a z kontextové nabídky vyberte Zobrazit kód a poté přímo zkopírujte kód do okna kódu, jak je znázorněno na obrázku níže.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, tento kód funguje dobře, ale smazáním řádku/sloupce jej obejdete. Existuje nějaké řešení? Na zdraví, Davide.
Tento komentář byl moderátorem webu minimalizován
Ahoj Davide,
Jakou verzi Excelu používáte? Zkoušel jsem kód, po použití kódu nelze odstranit celé řádky a sloupce v zadaném rozsahu.
Tento komentář byl moderátorem webu minimalizován
Děkuji za cenné informace.
Pokud jde o níže uvedený VBA:
Soukromá dílčí tabulka_Změna (ByVal Target As Range)
Pokud Intersect(Target, Range("A1:E7")) není nic, pak Exit Sub
Při chybě GoTo ExitPoint
Application.EnableEvents = False
If Not IsDate(Target(1)) Then
Aplikace. Zpět
MsgBox " Nemůžete smazat obsah buňky z tohoto rozsahu " _
, vbCritical, "Kutools pro Excel"
End If
Výstupní bod:
Application.EnableEvents = True
End Sub

Výše uvedené umožní provedení v určitém specifikovaném rozsahu. Neumožňuje přidávání nových řádků. Existuje způsob, jak lze přidat nové řádky při zachování stejné ochrany.
s díky a pozdravy
Tento komentář byl moderátorem webu minimalizován
Ahoj Oussama Abou faraj,
Po vyzkoušení různých metod se mi to nedaří rozjet. Po přidání nového řádku se oblast Ihned uzamkne a nově vloženou buňku nelze upravovat.
Tento komentář byl moderátorem webu minimalizován
Je možné udělat něco podobného na úrovni sešitu?

Soukromá dílčí tabulka_Změna (ByVal Target As Range)
If Intersect(Target, Range("A1:M7000")) Is Nothing Pak Exit Sub
Při chybě GoTo ExitPoint
Application.EnableEvents = False
If Not IsDate(Target(1)) Then
Aplikace. Zpět
MsgBox " Nemůžete smazat obsah buňky z tohoto rozsahu " _
, vbCritical, "Kutools pro Excel"
End If
Výstupní bod:
Application.EnableEvents = True
End Sub
Tento komentář byl moderátorem webu minimalizován
Ahoj Gelu,
Chcete zabránit smazání rozsahu "A1:M7000" ve všech listech aktuálního sešitu?
Tento komentář byl moderátorem webu minimalizován
Ne, chtěl jsem NEPOVOLIT smazání (bez ochrany wks nebo wkb).

Je hezké, že výše uvedené práce na úrovni Wks.

Pokud existuje něco, aby to fungovalo na úrovni wkb, bylo by to ještě lepší (mám mnoho listů)

G
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění