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

Kako zaščititi celice na podlagi datuma v Excelu?

Običajno lahko zaščitimo delovni list, da drugim preprečimo urejanje ali spreminjanje vrednosti celic, včasih pa morate celice zaščititi glede na datum. Na primer, želim zaščititi druge celice, vendar dovolim spreminjanje vrednosti celic današnjega datuma, kot je prikazano na spodnji sliki zaslona, ​​v tem članku bomo govorili o tem, kako zaščititi celice glede na datum.

doc zaščiti do datuma 1

Zaščitite vse vrstice, razen današnje datumske vrstice, s kodo VBA

Vse vrstice, ki jih je pretekel datum, zaščitite s kodo VBA


puščica modri desni mehurček Zaščitite vse vrstice, razen današnje datumske vrstice, s kodo VBA

Spremenite lahko samo vrstico, ki je enaka današnjemu datumu. Naslednja koda vam lahko pomaga, naredite tako:

1. Z desno miškino tipko kliknite zavihek lista, na katerem želite zaščititi celice glede na datum, in nato izberite Ogled kode iz kontekstnega menija v izpuščenem Microsoft Visual Basic za aplikacije okno, kopirajte in prilepite naslednjo kodo v prazen modul:

Koda VBA: Zaščitite vse vrstice, razen današnje vrstice z datumi:

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 zaščiti do datuma 2

Opombe: V zgornji kodi črka E je naslov stolpca, kjer je datum, "111111"Je geslo za zaščito tega lista. Lahko jih spremenite po svojih potrebah.

2. Nato shranite in zaprite to okno s kodo.

(1.) Če kliknete druge celice nad današnjo vrstico z datumi, se prikaže pozivno polje, ki vas opomni, da celice ni mogoče urejati, glejte posnetek zaslona:

doc zaščiti do datuma 3

(2.) Če kliknete in uredite vrstico, ki je enaka današnjemu datumu, bo uspešno spremenjena, glejte posnetek zaslona:

doc zaščiti do datuma 4


puščica modri desni mehurček Vse vrstice, ki jih je pretekel datum, zaščitite s kodo VBA

Če želite zaščititi vse vrstice, ki jih je pretekel datum, dovolite spreminjanje le vrstic danes in prihodnje datume, uporabite naslednjo kodo VBA:

1. Z desno miškino tipko kliknite zavihek lista, na katerem želite zaščititi celice glede na datum, in nato izberite Ogled kode iz kontekstnega menija v izpuščenem Microsoft Visual Basic za aplikacije okno, kopirajte in prilepite naslednjo kodo v prazen modul:

Koda VBA: Zaščitite vse vrstice datum je minil:

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 zaščiti do datuma 5

Opombe: V zgornji kodi številka 5 je številka stolpca, kjer se nahaja datum, "111111"Je geslo za zaščito tega lista. Lahko jih spremenite po svojih potrebah.

3. Nato shranite in zaprite to okno s kodo.

(1.) Če kliknete, da je datum celic minil, se prikaže pozivno polje, ki vas opomni, da celice ni mogoče urejati, glejte posnetek zaslona:

doc zaščiti do datuma 6

(2.) Če kliknete celico vrstic in poskusite spremeniti vrednosti na današnji datum ali prihodnji datum, bo ta uspešno spremenjena, glejte sliko zaslona:

doc zaščiti do datuma 7


Najboljša orodja za pisarniško produktivnost

Kutools za Excel rešuje večino vaših težav in poveča vašo produktivnost za 80%

  • Ponovna uporaba: Hitro vstavite zapletene formule, grafikoni in vse, kar ste že uporabljali; Šifriraj celice z geslom; Ustvari poštni seznam in pošiljanje e-pošte ...
  • Vrstica Super Formula (enostavno urejanje več vrstic besedila in formule); Bralna postavitev (enostavno branje in urejanje velikega števila celic); Prilepite v filtrirani obseg...
  • Združi celice / vrstice / stolpce brez izgube podatkov; Vsebina razdeljenih celic; Združi podvojene vrstice / stolpce... prepreči podvojene celice; Primerjaj obsege...
  • Izberite Duplicate ali Unique Vrstice; Izberite prazne vrstice (vse celice so prazne); Super Find in Fuzzy Find v mnogih delovnih zvezkih; Naključna izbira ...
  • Natančna kopija Več celic brez spreminjanja sklica formule; Samodejno ustvarjanje referenc na več listov; Vstavi oznake, Potrditvena polja in še več ...
  • Izvleček besedila, Dodaj besedilo, Odstrani po položaju, Odstrani presledek; Ustvari in natisni vmesne seštevke strani Pretvarjanje med vsebino celic in komentarji...
  • Super filter (shranite in uporabite sheme filtrov za druge liste); Napredno razvrščanje glede na mesec / teden / dan, pogostost in drugo; Poseben filter s krepko, ležeče ...
  • Združite delovne zvezke in delovne liste; Spoji tabele na podlagi ključnih stolpcev; Razdelite podatke na več listov; Paketna pretvorba xls, xlsx in PDF...
  • Več kot 300 zmogljivih funkcij. Podpira Office / Excel 2007-2021 in 365. Podpira vse jezike. Enostavna uvedba v vašem podjetju ali organizaciji. 30-dnevna brezplačna preizkusna različica vseh funkcij. 60-dnevna garancija vračila denarja.
zavihek kte 201905

Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
dno pisarniške mize
Komentarji (30)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
Vrzel: Geslo lahko vidi druga oseba z možnostjo »Ogled kode«.
Ta komentar je moderator na spletnem mestu minimiziral
ne deluje, saj vse celice prikazujejo sporočilo, vendar jih je mogoče urejati
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, ali je mogoče zakleniti stolpce po datumu neposredno nad stolpci?
Ta komentar je moderator na spletnem mestu minimiziral
Private Subworksheet_Change(ByVal Target As Range)

'Naročite se na http://youtube.com/excel10tutorial

'Podprite kanal z donacijo http://patreon.com/excel10tutorial

Dim col As Range

'Tukaj nastavite pravilno ime lista:

Z ThisWorkbook.Sheets("AGOSTO-22")

.Odstrani zaščito "ABCDE"

Za vsak stolpec In .UsedRange.Columns

col.EntireColumn.Locked = col.Range("A1").Vrednost <> Datum

Naslednji col

.Zaščiti "ABCDE"

.EnableSelection = xlNoRestrictions

Končaj s

End Sub
Ta komentar je moderator na spletnem mestu minimiziral
zdravo ali je mogoče zakleniti določene celice glede na datum, ki je neposredno nad njimi v stolpcu?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, Lusis,
Ali lahko natančneje opišete svoj problem? Lahko pa priložite posnetek zaslona kot svojo težavo.
Hvala!
Ta komentar je moderator na spletnem mestu minimiziral
Živjo skyyang

Da, tukaj je posnetek zaslona. Upam, da to pomaga.
Ta komentar je moderator na spletnem mestu minimiziral
Tukaj je.
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, Lucis,
Ali mislite zakleniti stolpce, katerih datum je pretekel, in je mogoče spremeniti samo stolpce današnjih in prihodnjih dni?
Ta komentar je moderator na spletnem mestu minimiziral
Pravilno! Kako bi se tega lotil?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, Luis,
Kaj pa datumska celica v A1? Ali se vnese ročno ali s formulo =now()? Če gre za celico formule, bodo zaklenjeni stolpci spremenjeni s spremembami datuma.
Veselimo se vašega odgovora!
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Skyyangg

da, celica A1 ima formulo =now().

hvala!
Ta komentar je moderator na spletnem mestu minimiziral
Zdravo.....


Uporabljam kodo za zaščito vseh vrstic razen današnje vrstice z datumom........



Zasebni pod delovni list_Sprememba izbora(ByVal Target As Range)
'Posodobitev Extendoffice 20161025
Če Obseg("A" & Izbira.Vrstica).Vrednost <> Datum Potem
ActiveSheet.Protect Password:="111111"
MsgBox "Urejati je mogoče samo današnjo datumsko vrstico!", vbInformation, "Kutools za Excel"
ElseIf Range("E" & Selection.Row).Value = Datum Potem
ActiveSheet.Unprotect Password:="111111"
ActiveSheet.EnableSelection = xlNoRestrictions
Konec Če
End Sub


Ko shranim i in kliknem celico, dobim sporočilo, da je mogoče urediti samo današnjo vrstico z datumi .... če pa dvokliknem celico, lahko uredim ... prosim za pomoč
Ta komentar je moderator na spletnem mestu minimiziral
To deluje odlično. ampak kako ga lahko preklopim, da odklenem stolpec na podlagi datumov v vrstici 3?
Ta komentar je moderator na spletnem mestu minimiziral
Bi kot nekdo, ki je relativno nov v VBA, razložil, zakaj je xRow = 2 v vrstici 4?



Hvala
Ta komentar je moderator na spletnem mestu minimiziral
ker v vrsti št. 1 imate glavo
Ta komentar je moderator na spletnem mestu minimiziral
Hi,

med izvajanjem te kode dobim napako, kot je prikazano na sliki
Prilagam tudi posnetek mojega excela, kjer želim narediti spremembe..

Ali lahko v moji kodi navedete, kje naj naredim spremembe glede na mojo excel datoteko, da se lahko urejajo celice, ki vsebujejo samo današnji in prihodnji datum ???
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni Karan,
Ker so v vaši tabeli združene celice, zgornje kode ni mogoče pravilno uporabiti v tabeli združenih celic.
Če imate še kakšno dobro idejo, komentirajte tukaj. Hvala vam!
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, poskusil sem narediti enako, vendar zaščititi vse stolpce, razen današnjega stolpca z datumi, s kodo VBA, tako da sem zamenjal "Selection.Row" z "Selection.Columns" in "E" s "5" (številka vrstice, kjer so datumi), vendar Vedno znova prejemam napako 1004!

Kakšno pomoč prosim?

Hvala
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, poskusil sem narediti enako, vendar zaščititi vse stolpce, razen današnjega stolpca z datumi, s kodo VBA, tako da sem zamenjal "Selection.Row" z "Selection.Columns" in "E" s "5" (številka vrstice, kjer so datumi), vendar Vedno znova prejemam napako 1004!

Kakšno pomoč prosim?

Hvala
Ta komentar je moderator na spletnem mestu minimiziral
Zdravo,
Če želite uporabiti to kodo za stolpce, ki jih potrebujete, uporabite naslednjo kodo VBA: (Opomba: V kodi je številka vrstice 5, ki vsebuje datum, spremenite jo glede na vaše potrebe.)

Zasebni pod delovni list_Sprememba izbora(ByVal Target As Range)
Dim xRg As Range
Nastavi xRg = Target.Worksheet.Cells(5, Target.Column)
Če xRg <> Datum Potem
ActiveSheet.Protect Password:="111111"
MsgBox "Urejati je mogoče samo današnjo datumsko vrstico!", vbInformation, "Kutools za Excel"
ElseIf xRg.Value = Datum Potem
ActiveSheet.Unprotect Password:="111111"
ActiveSheet.EnableSelection = xlNoRestrictions
Konec Če
End Sub

Prosim poskusite, upam, da vam lahko pomaga!
Ta komentar je moderator na spletnem mestu minimiziral
Hvala vam! Oprostite, do zdaj nisem prejel vašega odgovora, morda je težava v moji e-pošti.

Delovalo je! Ne morem reči dovolj hvala! Resnično cenim to!
Ta komentar je moderator na spletnem mestu minimiziral
Hi,
Veseli me, da vam lahko pomaga!
Ta komentar je moderator na spletnem mestu minimiziral
Hi,

To poskušam razširiti, da zaščitim stolpce, ki ne vključujejo tega tekočega meseca ali/in tega tekočega tedna. Poskušal sem zamenjati "Datum" z "mesec" ali "teden", vendar mi ni uspelo.

Priložil sem vzorec lista za tedne, kjer uporabnik ne more urejati ali vnašati stolpcev razen tega tedna.

Kakšen nasvet glede tega? ali naj uporabim dejanske datume, da odražam dan v mesecu?
Ta komentar je moderator na spletnem mestu minimiziral
Hvala za vašo pomoč, najlepša hvala kolega, v veliko pomoč. in rešil mojo napetost.
Bodite varni
Lep pozdrav Rohit Khanna
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, soočam se z eno težavo, ko zaprem datoteko in jo znova odprem na isti datum, koda ne deluje. prosim, pomagajte sem zaljubljen
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, rohit,
Če želite obdržati kodo, morate svoj delovni zvezek shraniti v formatu delovnega zvezka z omogočenimi makri v Excelu, poskusite, hvala!
Ta komentar je moderator na spletnem mestu minimiziral
zdravo, uspelo mi je, vendar ko pritisnem celico, sporočilo kaže, da ga ni mogoče urejati, ko pa pritisnem tipko, lahko še vedno pišem v celico
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, rad bi zaščitil prihodnje dni in dovolil urejanje trenutnih in preteklih dni. Kako to naredim?
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, Miguel, za zaščito prihodnjih dni uporabite spodnjo kodo: Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Posodobitev Extendoffice
Dim xRow As Long
xVrstica = 2
ThisWorkbook.ActiveSheet.Unprotect Password:="111111"
ThisWorkbook.ActiveSheet.Cells.Locked = False
Naredi, dokler ni prazen(celice(xRow, 5))
Če celice(xRow, 5) > Datum Potem
Vrstice(xRow).Zaklenjeno = True
Konec Če
xVrstica = xVrstica + 1
Zanka
ThisWorkbook.ActiveSheet.Protect Password:="111111"
Konec SubProsim, poskusite, upam, da vam lahko pomaga!
Tu še ni objavljenih komentarjev
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije

Sledi nam

Copyright © 2009 - www.extendoffice.com. | Vse pravice pridržane. Poganja ga ExtendOffice. | Kazalo
Microsoft in logotip Office sta blagovni znamki ali registrirani blagovni znamki družbe Microsoft Corporation v ZDA in / ali drugih državah.
Zaščiteno s Sectigo SSL