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

Hur förhindrar man att specifikt cellinnehåll raderas i Excel?

Den här artikeln talar om att förhindra att specifikt cellinnehåll raderas i Excel. Du kan uppnå det med metoderna i den här artikeln.

Förhindra att specifikt cellinnehåll raderas genom att skydda kalkylbladet
Förhindra att specifikt cellinnehåll raderas med hjälp av VBA-kod


Förhindra att specifikt cellinnehåll raderas genom att skydda kalkylbladet

Som standard är alla celler i kalkylbladet låsta. Om du vill förhindra att specifikt cellinnehåll raderas och göra andra celler redigerbara efter skydd, gör så här.

1. Klicka på i det övre vänstra hörnet av kalkylbladet för att välja hela kalkylbladet. Tryck sedan på ctrl + 1 nycklar för att öppna Formatera celler dialog ruta.

2. I pop-up Formatera celler avmarkera kryssrutan Låst alternativet under Skydd fliken och klicka sedan på OK knapp. Se skärmdump:

3. Markera de celler som du inte vill att innehållet ska tas bort, tryck på ctrl + 1 tangenter för att öppna Formatera celler dialogrutan igen, kontrollera Låst alternativet under Skydd fliken och klicka sedan på OK knapp.

4. Klicka nu översyn > Skydda arket, ange och bekräfta sedan ditt lösenord i båda Skydda arket och Bekräfta lösenord dialogrutor.

Nu är kalkylbladet skyddat. Och det angivna cellinnehållet raderas inte längre.


Förhindra att specifikt cellinnehåll raderas med hjälp av VBA-kod

Förutom ovanstående två metoder kan du köra VBA-kod för att förhindra att specifikt cellinnehåll raderas i ett kalkylblad. Gör så här.

1. Öppna kalkylbladet som innehåller cellinnehållet som du inte vill ta bort, högerklicka på fliken Ark och klicka sedan på Visa kod från högerklickmenyn.

2. Kopiera och klistra in nedanstående VBA-kod i kodfönstret på Microsoft Visual Basic för applikationer fönster.

VBA-kod: Förhindra att specifikt cellinnehåll raderas i 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

Anmärkningar: I koden är A1: E17 det intervall som cellinnehållet du kommer att förhindra att tas bort. Du kan ändra intervallet baserat på dina behov.

Från och med nu, när du försöker ta bort cellinnehåll från intervall A1: E17, får du en Kutools för Excel dialogrutan enligt skärmdumpen nedan, klicka på OK knapp.


Relaterade artiklar:


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (17)
Klassad 5 av 5 · 1 betyg
Denna kommentar minimerades av moderatoren på webbplatsen
Precis vad jag letade efter, tack för hjälpen!
Denna kommentar minimerades av moderatoren på webbplatsen
oroa dig inte alltid här för att hjälpa :)
Denna kommentar minimerades av moderatoren på webbplatsen
Hej där,

Jag har precis provat VBA-skriptet och samtidigt fungerar det riktigt bra i de flesta situationer. Det fungerar dock inte när du tabbar från en redigerbar cell till den icke redigerbara kolumnen/cellen. Problemet uppstår genom att det skickar upp felmeddelandet - enligt kommandot - men det behåller inte data som matades in i den ursprungliga, redigerbara cellen som flikades från.

Skulle du ha ett tillägg till skriptet så att det accepterar data i den redigerbara cellen när du klickar på oredigerbar?

Skål
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Jag försökte som du nämnde i ditt fall, men inga fel kastar. Skulle du ge en skärmdump av ditt fall eller berätta din Office-version?
Tack för din kommentar.
Denna kommentar minimerades av moderatoren på webbplatsen
Om du inte vill titta på ditt ark eller skriva VBA-kod, så använder jag en enkel teknik som förhindrar alla åsidosättanden förutom när de använder "DELETE"-tangenten (backsteg kommer inte att tillåtas, men Delete är svårt att stoppa ). Det jag gjorde var att lägga till en datavalidering med följande inställningar:

1) Tillåt --> Lista

2) avmarkera "Ignorera tomt" och "in-cell dropdown"

3) Ange två dubbla citattecken i källan (dvs. "")

4) På fliken Error Alert, kryssa i "Visa feländring efter att ogiltig data har angetts", välj "Stopp" för stil, ange sedan ett felmeddelande och en beskrivning (t.ex. Åsidosätt inte)
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
Tack för delningen.
Denna kommentar minimerades av moderatoren på webbplatsen
VBA-kod - Bra tips tack

Finns det en VBA-kod för att förhindra att specifikt cellinnehåll ändras OCH tas bort i Excel?
Det vanliga skyddsbladet fungerar inte för mig eftersom jag förlorar möjligheten att sortera data?

Tack på förhand - Neil
Denna kommentar minimerades av moderatoren på webbplatsen
"Förhindra att specifikt cellinnehåll tas bort genom att skydda kalkylbladet" Jag gjorde enligt dina riktlinjer, fortfarande kunde cellinformation raderas, dvs skyddet fungerar inte. Vilken lösning som helst.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Ahsan,
Har du tillämpat VBA-metoden?
Du måste lägga till VBA i kalkylbladets kodfönster. Om du antar att cellinnehållet du vill skydda finns i Sheet9, högerklicka på arkfliken och välj Visa kod från snabbmenyn och kopiera sedan koden direkt till kodfönstret som bilden nedan visas.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, den här koden fungerar bra, men att ta bort rad/kolumn kommer att kringgå den. Finns det någon lösning på detta? Skål, David.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej David,
Vilken Excel-version använder du? Jag har provat koden, hela rader och kolumner i det angivna intervallet kan inte tas bort efter att ha använt koden.
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för den värdefulla informationen.
Angående nedanstående VBA:
Privata delarkivsförändring (ByVal-mål som område)
Om Intersect(Target, Range("A1:E7")) är ingenting, avsluta Sub
Vid fel GoTo ExitPoint
Application.EnableEvents = False
Om inte IsDate(Target(1)) Då
Application.Ångra
MsgBox " Du kan inte ta bort cellinnehåll från detta intervall " _
, vbCritical, "Kutools för Excel"
End If
ExitPoint:
Application.EnableEvents = True
End Sub

Ovanstående tillåter exekvering inom ett visst specificerat intervall. Det tillåter inte tillägg av nya rader. Finns det något sätt att nya rader kan läggas till men ändå behålla samma skydd.
tack och hälsningar
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Oussama Abou faraj,
Efter att ha provat med olika metoder verkar jag inte få det här att fungera. Efter att ha lagt till en ny rad kommer området att låsas omedelbart och den nyligen infogade cellen kan inte redigeras.
Denna kommentar minimerades av moderatoren på webbplatsen
Är det möjligt att göra något liknande på arbetsboksnivå?

Privata delarkivsförändring (ByVal-mål som område)
If Intersect(Target, Range("A1:M7000")) Is Nothing Then Exit Sub
Vid fel GoTo ExitPoint
Application.EnableEvents = False
Om inte IsDate(Target(1)) Då
Application.Ångra
MsgBox " Du kan inte ta bort cellinnehåll från detta intervall " _
, vbCritical, "Kutools för Excel"
End If
ExitPoint:
Application.EnableEvents = True
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Gelu,
Menar du att förhindra att området "A1:M7000" tas bort i alla kalkylblad i den aktuella arbetsboken?
Denna kommentar minimerades av moderatoren på webbplatsen
Nej, jag menade INTE att tillåta radering (utan att skydda wks eller wkb).

Det är trevligt att ovanstående fungerar på Wks-nivå.

Om det finns något som får det att fungera på wkb-nivå skulle det vara ännu bättre (jag har många ark)

G
Denna kommentar minimerades av moderatoren på webbplatsen
Det här är bra. Jag undrade om detta var ett alternativ och det var det nog. Tack för de mycket enkla instruktionerna.

Andres S.
Klassad 5 av 5
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL