Hoppa till huvudinnehåll
 

Hur skyddar jag celler baserat på datum i Excel?

Författare: Xiaoyang Senast ändrad: 2020-07-24

Normalt kan vi skydda kalkylbladet för att förhindra att andra redigerar eller ändrar cellvärdena, men ibland måste du skydda cellerna baserat på datum. Till exempel vill jag skydda andra celler men bara låta cellvärdena för dagens datum modifieras enligt följande skärmdump, den här artikeln kommer att prata om hur man skyddar celler baserat på datum.

doc skydda efter datum 1

Skydda alla rader utom dagens datumrad med VBA-kod

Skydda alla rader som datumet har passerat med VBA-kod


pil blå höger bubbla Skydda alla rader utom dagens datumrad med VBA-kod

Tillåt bara att raden som motsvarar dagens datum kan ändras, följande kod kan hjälpa dig, gör så här:

1. Högerklicka på arkfliken som du vill skydda cellerna baserat på datum och välj sedan Visa kod från snabbmenyn, i poppade ut Microsoft Visual Basic för applikationer kopiera och klistra in följande kod i den tomma modulen:

VBA-kod: Skydda alla rader utom dagens datumrad:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20161025
    If Range("E" & Selection.Row).Value <> Date Then
        ActiveSheet.Protect Password:="111111"
        MsgBox "Only today's date row can be edited!", vbInformation, "Kutools for Excel"
    ElseIf Range("E" & Selection.Row).Value = Date Then
        ActiveSheet.Unprotect Password:="111111"
        ActiveSheet.EnableSelection = xlNoRestrictions
    End If
End Sub

doc skydda efter datum 2

Anmärkningar: I ovanstående kod, bokstaven E är kolumnrubriken där datumet ligger, “111111”Är lösenordet för att skydda detta ark. Du kan ändra dem efter dina behov.

2. Spara och stäng sedan kodfönstret.

(1.) Om du klickar på andra celler utöver dagens datumrad kommer en snabbruta att dyka upp för att påminna dig om att cellen inte kan redigeras, se skärmdump:

doc skydda efter datum 3

(2.) Om du klickar och redigerar raden som motsvarar dagens datum kommer den att ändras framgångsrikt, se skärmdump:

doc skydda efter datum 4


pil blå höger bubbla Skydda alla rader som datumet har passerat med VBA-kod

Om du behöver skydda alla rader som datumet har passerat, endast tillåta att dagens och framtida datumrader kan ändras, använd följande VBA-kod:

1. Högerklicka på arkfliken som du vill skydda cellerna baserat på datum och välj sedan Visa kod från snabbmenyn, i poppade ut Microsoft Visual Basic för applikationer kopiera och klistra in följande kod i den tomma modulen:

VBA-kod: Skydda alla rader datum har passerat:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updateby Extendoffice 20161025
  Dim xRow As Long
  xRow = 2
  ThisWorkbook.ActiveSheet.Unprotect Password:="111111"
  ThisWorkbook.ActiveSheet.Cells.Locked = False
  Do Until IsEmpty(Cells(xRow, 5))
    If Cells(xRow, 5) < Date Then
      Rows(xRow).Locked = True
    End If
    xRow = xRow + 1
  Loop
  ThisWorkbook.ActiveSheet.Protect Password:="111111"
End Sub

doc skydda efter datum 5

Anmärkningar: I ovanstående kod, numret 5 är kolumnnumret där datumet ligger, “111111”Är lösenordet för att skydda detta ark. Du kan ändra dem efter dina behov.

3. Spara och stäng sedan kodfönstret.

(1.) Om du klickar på celldatumet har passerat kommer en snabbruta att dyka upp för att påminna dig om att cellen inte kan redigeras, se skärmdump:

doc skydda efter datum 6

(2.) Om du klickar på raderna för att försöka ändra värdena i dagens datum eller framtida datum kommer det att ändras framgångsrikt, se skärmdump:

doc skydda efter datum 7

Bästa kontorsproduktivitetsverktyg

🤖 Kutools AI Aide: Revolutionera dataanalys baserat på: Intelligent utförande   |  Generera kod  |  Skapa anpassade formler  |  Analysera data och generera diagram  |  Anropa Kutools funktioner.
Populära funktioner: Hitta, markera eller identifiera dubbletter   |  Ta bort tomma rader   |  Kombinera kolumner eller celler utan att förlora data   |   Rund utan formel ...
Superuppslag: Flera kriterier VLookup    VLookup med flera värden  |   VSök över flera ark   |   Fuzzy Lookup ....
Avancerad rullgardinslista: Skapa snabbt en rullgardinslista   |  Beroende rullgardinslista   |  Flervals-rullgardinslista ....
Kolumnhanterare: Lägg till ett specifikt antal kolumner  |  Flytta kolumner  |  Växla synlighetsstatus för dolda kolumner  |  Jämför intervall och kolumner ...
Utvalda funktioner: Rutnätsfokus   |  Designvy   |   Stor formelbar    Arbetsbok & Bladhanterare   |  Resursbibliotek (Automatisk text)   |  Datumväljare   |  Kombinera arbetsblad   |  Kryptera/Dekryptera celler    Skicka e-postmeddelanden efter lista   |  Superfilter   |   Specialfilter (filtrera fet/kursiv/genomstruken...) ...
Topp 15 verktygssatser12 text verktyg (lägga till text, Ta bort tecken, ...)   |   50+ Diagram Typer (Gantt Chart, ...)   |   40+ Praktiskt Formler (Beräkna ålder baserat på födelsedag, ...)   |   19 Införande verktyg (Infoga QR-kod, Infoga bild från sökväg, ...)   |   12 Konvertering verktyg (Siffror till ord, Valutaväxling, ...)   |   7 Slå ihop och dela verktyg (Avancerade kombinera rader, Dela celler, ...)   |   ... och mer

Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid.  Klicka här för att få den funktion du behöver mest...


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!