Hvordan beskyttes celler baseret på dato i Excel?
Normalt kan vi beskytte regnearket for at forhindre andre i at redigere eller ændre celleværdierne, men nogle gange er du nødt til at beskytte cellerne baseret på dato. For eksempel vil jeg beskytte andre celler, men kun tillade, at celleværdierne i dagens dato ændres som vist på følgende skærmbillede, denne artikel vil tale om, hvordan man beskytter celler baseret på dato.
Beskyt alle rækker undtagen dagens datorrække med VBA-kode
Beskyt alle rækker, datoen er passeret med VBA-kode
Beskyt alle rækker undtagen dagens datorrække med VBA-kode
Tillad kun den række, der svarer til dagens dato, at blive ændret, følgende kode kan hjælpe dig, gør venligst som denne:
1. Højreklik på arkfanen, som du vil beskytte cellerne baseret på dato, og vælg derefter Vis kode fra genvejsmenuen, i poppet ud Microsoft Visual Basic til applikationer vindue, skal du kopiere og indsætte følgende kode i det tomme modul:
VBA-kode: Beskyt alle rækker undtagen dagens datorrække:
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
Bemærk: I ovenstående kode, brevet E er kolonneoverskriften, hvor datoen er placeret, “111111”Er adgangskoden til at beskytte dette ark. Du kan ændre dem til dit behov.
2. Gem og luk derefter dette kodevindue.
(1.) Hvis du klikker på andre celler ud over dagens datorrække, vises et promptfelt for at minde dig om, at cellen ikke kan redigeres, se skærmbillede:
(2.) Hvis du klikker og rediger rækken svarer til dagens dato, vil den blive ændret med succes, se skærmbillede:
Beskyt alle rækker, datoen er passeret med VBA-kode
Hvis du har brug for at beskytte alle rækker, datoen er gået, kun tillader ændring i dag og fremtidige datorrækker, skal du anvende følgende VBA-kode:
1. Højreklik på arkfanen, som du vil beskytte cellerne baseret på dato, og vælg derefter Vis kode fra genvejsmenuen, i poppet ud Microsoft Visual Basic til applikationer vindue, skal du kopiere og indsætte følgende kode i det tomme modul:
VBA-kode: Beskyt alle rækker datoen er passeret:
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
Bemærk: I ovenstående kode, nummeret 5 er kolonnenummeret, hvor datoen er placeret, “111111”Er adgangskoden til at beskytte dette ark. Du kan ændre dem til dit behov.
3. Gem og luk derefter dette kodevindue.
(1.) Hvis du klikker på celledatoen er passeret, vises et promptfelt for at minde dig om at cellen ikke kan redigeres, se skærmbillede:
(2.) Hvis du klikker på cellen med rækker for at prøve at ændre værdierne i dagens dato eller fremtidige dato, vil den blive ændret med succes, se skærmbillede:
Bedste kontorproduktivitetsværktøjer
Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid. Klik her for at få den funktion, du har mest brug for...
Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere
- Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
- Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
- Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!