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

Hur låser eller skyddar celler efter datainmatning eller inmatning i Excel?

Om du antar att du har ett kalkylblad och bara ett visst antal tomma celler behöver inmatas data, och efter att du har skrivit in data måste du låsa cellerna automatiskt för att förhindra ändringar igen. Hur kan du göra för att uppnå det? Den här artikeln kan hjälpa dig.

Lås eller skydda celler efter datainmatning eller inmatning med VBA-kod


Lås eller skydda celler efter datainmatning eller inmatning med VBA-kod

Till exempel är det vissa området tomma celler A1: F8. Gör så här för att låsa dessa celler efter datainmatning i Excel.

1. Lås upp detta område först, välj cellerna och högerklicka och välj sedan Formatera celler i högerklickmenyn och i Formatera celler dialogrutan, avmarkerar kryssrutan Låst lådan under skydd och slutligen klicka på OK knapp. Se skärmdump:

2. klick översyn > Skydda arket. Och ange ett lösenord för att skydda detta kalkylblad.

3. Högerklicka på arkfliken och välj Visa kod från högerklickmenyn. Kopiera och klistra sedan in nedanstående VBA-kod i kodfönstret. Se skärmdump:

VBA-kod: Lås eller skydda celler efter inmatning eller inmatning av data

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

Anmärkningar: I koden är “A1: F8” det område du behöver för att mata in data; och “123” är lösenordet för detta skyddade kalkylblad. Ändra dem efter behov.

4. Tryck andra + Q samtidigt för att stänga Microsoft Visual Basic för applikationer fönster.

Efter att ha slutfört att mata in data i cellerna i intervallet A1: F8, kommer de att låses automatiskt. Och du får en snabb dialogruta om du försöker ändra något cellinnehåll i detta intervall. Se skärmdump:


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 (74)
Klassad 5 av 5 · 1 betyg
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag har ett kalkylblad med intervallet A3:AN219, jag skulle vilja skydda detta intervall när och när inmatningen är klar. Snälla hjälp mig med detta. Jag försökte ovanstående kod men det fungerar inte för mig
Denna kommentar minimerades av moderatoren på webbplatsen
Detta fungerar inte när det öppnar excel-fil igen, snälla hjälp
Denna kommentar minimerades av moderatoren på webbplatsen
Prova den här koden istället: 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"). Unprotect password: ="hej" MyRange.Locked = True Sheets("Sheet1"). Skydda lösenord:="hej" End If End Sub Och kom ihåg att ändra intervall (A1:D100), lösenord (hej) och ark (Sheet1) namn/nummer om det inte stämmer överens med ovan :)
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för koden. Vänligen låt mig veta hur man gör automatisk låsning av cellerna (liknande de som listas av dig) ENDAST EFTER att du har sparat filen
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Sir, Jag har ett problem med samma kod när jag använder den här koden med andra cobe i VBA. Vänligen föreslå mig någon lösning Tack och hälsningar Gourav
Denna kommentar minimerades av moderatoren på webbplatsen
Kära Gourav,
Jag kan tyvärr inte lösa det här problemet.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag provade koden och verkade fungera något. Det tillåter mig dock att ta bort datumet som skrivits in i cellen men stoppar mig bara när jag försöker skriva in något annat. Finns det något sätt att förhindra att data raderas?
Denna kommentar minimerades av moderatoren på webbplatsen
Kära Stacy,
Samma problem förekommer inte i mitt fall. Koden hindrar användare från att ange samt radera data från det angivna intervallet. Skulle du tillhandahålla din Office-version för ytterligare testning?
Denna kommentar minimerades av moderatoren på webbplatsen
För alla som kan ha snubblat hit sedan denna kommentar. Om du måste låsa upp kalkylbladet VARJE GÅNG du fyller i en cell måste du först, - Låsa upp kalkylarket - Markera området på kalkylbladet som koden gäller över - Högerklicka och gå till "formatera celler" - Gå till fliken längst till höger som heter 'Skydd' och AVKOCKLA AV sektionen 'Låst' (även om den visas som en fast fyllning istället för en bock) Efter det kommer du att kunna ange data i flera celler utan att behöva låsa upp varje gång. Tänk på att om du behöver besöka låsta celler igen för att radera eller redigera information kan du behöva upprepa stegen ovan. Hoppas det här hjälper.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag gillar att bara låsa de redigerade cellerna. När jag väl anger data i de tomma cellerna måste jag låsa den redigerade cellen för att låsas automatiskt men inte de tomma cellerna.
Denna kommentar minimerades av moderatoren på webbplatsen
Kära Subhash,
Efter att ha använt koden är endast de redigerade cellerna låsta i det angivna intervallet. Och du kan fortfarande ange data i de tomma cellerna i det angivna intervallet som du behöver. Efter att ha fyllt i den tomma cellen kommer den att låsas automatiskt.
Denna kommentar minimerades av moderatoren på webbplatsen
Nej, det låser hela området på en gång efter en datainmatning i en cell i området
Denna kommentar minimerades av moderatoren på webbplatsen
Kära pradip,
Vilken Office-version använder du?
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för kodningen, men jag har problem med att lägga två kodningar i ett ark, snälla hjälp.
Denna kommentar minimerades av moderatoren på webbplatsen
Kära mässa,
Jag kan tyvärr inte lösa det här problemet.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
Sir jag vill låsa efter en gångs indata!
Som att jag följer en kund och skriver status, då kan ingen fler medarbetare redigera eller ändra det!
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Metoden i det här inlägget kan också hjälpa dig att lösa detta problem.
Denna kommentar minimerades av moderatoren på webbplatsen
celler är inte ens redigerbara ... vad som gick fel förstår inte, snälla hjälp
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Först måste du ställa in specificerade celler till Olåst för redigering och sedan skydda kalkylbladet. Och slutligen tillämpa VBA-skriptet.
Denna kommentar minimerades av moderatoren på webbplatsen
måste det kodas?
Denna kommentar minimerades av moderatoren på webbplatsen
Hi


jag vill att det ska låsa intervallet efter inträde i en cell i intervallet, kan du tipsa om hur jag behöver redigera detta för att göra detta tack
Denna kommentar minimerades av moderatoren på webbplatsen
Hi
redigera koden finns det något sätt jag kan få den att låsa alla celler i intervallet efter att data har matats in i en cell inom det intervallet? så de kan bara mata in data i en cell inom intervallet, inte flera.


tack
Denna kommentar minimerades av moderatoren på webbplatsen
Kära Jackie,
VBA-koden nedan kan hjälpa dig att lösa problemet.

Privata delarkivsförändring (ByVal-mål som område)
Dim xRg As Range
Dim xSRg As Range
On Error Resume Next
Ställ in xSRg = Range("A1:F8")
Ställ in xRg = Intersect(xSRg, Target)
Om xRg är ingenting, avsluta Sub
Target.Worksheet.Unprotect Password:="123"
xSRg.Locked = Sant
Target.Worksheet.Protect Password:="123"
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hallå,
Finns det något sätt att låsa endast celler istället för hela arket? Till exempel, om en användare anger "Ja" i A2, låser A2 omedelbart för att inte tillåta några ändringar. Jag skulle fortfarande vilja om andra fortfarande kunde redigera någon annan cell också. Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Smith,
VBA-koden nedan kan hjälpa dig att lösa problemet. Prova gärna och tack för din kommentar.

Privata delarkivsförändring (ByVal-mål som område)
On Error Resume Next
Target.Worksheet.Unprotect Password:="123"
Target.Locked = Sant
Target.Worksheet.Protect Password:="123"
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
God morgon,

Finns det någonstans att hindra en användare från att högerklicka på "visa kod" och se administratörslösenordet?
Denna kommentar minimerades av moderatoren på webbplatsen
Strunt i det, jag fick det.
Denna kommentar minimerades av moderatoren på webbplatsen
På vilket sätt? jag fattade inte...
Denna kommentar minimerades av moderatoren på webbplatsen
hej, behöver lite hjälp


Jag gör faktiskt en arbetslista för en stor grupp människor, och det här bladet är tillgängligt för alla så att de kan skriva in sina önskemål om lediga dagar/årsledigheter etc. men jag vill bara begränsa ett antal personer på semester för varje dag (max 5 lediga) och efter att 5 ledighetsförfrågningar har skrivits in för dagen, kan ingen annan instans fylla längre förfrågningar för just det datumet.


finns det någon kod/funktion som kommer att beräkna antalet specifika förfrågningar per dag, sedan när kvoten nås, blockeras de andra cellerna för att förfrågningarna inte ska överskrida? Tack på förhand
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Välkommen att ställa alla frågor i vårt forum: https://www.extendoffice.com/forum.html.
Du kommer att få mer Excel-stöd från våra professionella eller andra Excel-fans.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej - det här inlägget var till stor hjälp och fungerar perfekt. Men mina filter slutar fungera när cellerna låser sig. Finns det en väg runt detta? Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Kim,
Jag kan tyvärr inte hjälpa till med detta. Filterfunktionen är inaktiverad i ett skyddat kalkylblad som standard.
Denna kommentar minimerades av moderatoren på webbplatsen
Tack man, detta räddade mitt jobb :D
Denna kommentar minimerades av moderatoren på webbplatsen
När jag kommer ut ur den för närvarande fungerande filen och öppnade den igen upptäckte jag att den nya cellen inte låst efter datainmatning, bara den tidigare låscellen hittade låset. någon lösning
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Nazmul,
Du måste spara arbetsboken som en Excel-makroaktiverad arbetsbok innan du stänger den.
Det finns inga kommentarer här ännu
Ladda fler

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