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

Hogyan védhetjük meg a cellákat az Excel dátum alapján?

Normál esetben megvédhetjük a munkalapot, hogy megakadályozzuk, hogy mások szerkesszék vagy módosítsák a cellaértékeket, de néha védeni kell a cellákat dátum alapján. Például meg akarok védeni más cellákat, de csak a mai dátum cellaértékeinek módosítását engedélyezem, ahogy az a képernyőképen látható, ebben a cikkben a cellák dátum alapján történő védelméről beszélünk.

doc védelem dátum szerint 1

VBA kóddal védjen minden sort a mai dátumsor kivételével

Védje az összes sort, amelyet a dátum eltelt VBA kóddal


nyíl kék jobb buborék VBA kóddal védjen minden sort a mai dátumsor kivételével

Csak a mai dátummal megegyező sor módosítását engedélyezze, a következő kód segíthet, kérjük, tegye a következőket:

1. Kattintson a jobb gombbal azon a lapfülön, amelyen dátum alapján védeni szeretné a cellákat, majd válassza a lehetőséget Kód megtekintése a helyi menüből, a kiugrottban Microsoft Visual Basic for Applications ablakba, kérjük, másolja és illessze be a következő kódot az üres modulba:

VBA kód: Minden sort véd, kivéve a mai dátumot:

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 védelem dátum szerint 2

Megjegyzések: A fenti kódban a betű E az oszlopfejléc, ahol a dátum található,111111”A jelszó a lap védelmére. Igény szerint megváltoztathatja őket.

2. Ezután mentse el és zárja be ezt a kódablakot.

(1.) Ha a mai dátumsoron túl más cellákra kattint, megjelenik egy felszólító mező, amely emlékezteti Önt arra, hogy a cellát nem lehet szerkeszteni, lásd a képernyőképet:

doc védelem dátum szerint 3

(2.) Ha rákattint és módosítja a sort, amely megegyezik a mai dátummal, sikeresen módosul, lásd a képernyőképet:

doc védelem dátum szerint 4


nyíl kék jobb buborék Védje az összes sort, amelyet a dátum eltelt VBA kóddal

Ha meg kell védenie a dátum elmúlt sorait, csak a mai és a jövőbeli dátumsorok módosítását engedélyezze, kérjük, alkalmazza a következő VBA kódot:

1. Kattintson a jobb gombbal azon a lapfülön, amelyen dátum alapján védeni szeretné a cellákat, majd válassza a lehetőséget Kód megtekintése a helyi menüből, a kiugrottban Microsoft Visual Basic for Applications ablakba, kérjük, másolja és illessze be a következő kódot az üres modulba:

VBA-kód: Az összes sor védelme, a dátum telt el:

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 védelem dátum szerint 5

Megjegyzések: A fenti kódban a szám 5 az oszlop száma, ahol a dátum található, "111111”A jelszó a lap védelmére. Igény szerint megváltoztathatja őket.

3. Ezután mentse el és zárja be ezt a kódablakot.

(1.) Ha rákattint a cellák dátumának telt el, megjelenik egy figyelmeztető mező, amely emlékezteti a cellát nem lehet szerkeszteni, lásd a képernyőképet:

doc védelem dátum szerint 6

(2.) Ha a sorok cellájára kattint, hogy megpróbálja megváltoztatni az értékeket a mai dátumban vagy a jövőbeli dátumban, akkor az sikeresen módosul, lásd a képernyőképet:

doc védelem dátum szerint 7


A legjobb irodai termelékenységi eszközök

A Kutools for Excel megoldja a legtöbb problémát, és 80% -kal növeli a termelékenységet

  • újrafelhasználás: Gyorsan helyezze be összetett képletek, diagramok és bármi, amit korábban használt; Cellák titkosítása jelszóval; Levelezőlista létrehozása és e-maileket küldeni ...
  • Szuper Formula Bár (könnyedén szerkeszthet több szöveget és képletet); Olvasás elrendezés (könnyen olvasható és szerkeszthető nagyszámú cella); Beillesztés a Szűrt tartományba...
  • Cellák / sorok / oszlopok egyesítése az adatok elvesztése nélkül; Osztott cellák tartalma; Kombinálja a duplikált sorokat / oszlopokat... megakadályozza az ismétlődő cellákat; Hasonlítsa össze a tartományokat...
  • Válassza a Másolat vagy az Egyedi lehetőséget Sorok; Válassza az Üres sorok lehetőséget (az összes cella üres); Super Find és Fuzzy Find sok munkafüzetben; Véletlenszerű kiválasztás ...
  • Pontos másolás Több cella a képletreferencia megváltoztatása nélkül; Automatikus referenciák létrehozása több lapra; Helyezze be a golyókat, Jelölőnégyzetek és még sok más ...
  • Kivonat szöveg, Szöveg hozzáadása, Eltávolítás pozíció szerint, Hely eltávolítása; Hozz létre és nyomtasson személyhívó részösszegeket; Konvertálás a cellatartalom és a megjegyzések között...
  • Szuper szűrő (mentse el és alkalmazza a szűrősémákat más lapokra); Haladó rendezés hónap / hét / nap, gyakoriság és egyebek szerint; Speciális szűrő félkövér, dőlt betűvel ...
  • Kombinálja a munkafüzeteket és a munkalapokat; Táblázatok egyesítése kulcsoszlopok alapján; Az adatok felosztása több lapra; Kötegelt konvertálás xls, xlsx és PDF...
  • Több mint 300 hatékony funkció. Támogatja az Office / Excel 2007-2021 és 365 verziókat. Minden nyelvet támogat. Könnyű üzembe helyezés vállalatában vagy szervezetében. Teljes funkciók 30 napos ingyenes próbaverzió. 60 napos pénzvisszafizetési garancia.
kte lap 201905

Az Office fül a füles felületet hozza az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
officetab alja
A megjegyzések rendezése szerint
Hozzászólások (30)
Még nincs értékelés. Legyen Ön az első, aki értékel!
A weboldal moderátora ezt a megjegyzést minimalizálta
Kiskapu: A jelszót más személyek is láthatják a "Kód megtekintése" opcióval.
A weboldal moderátora ezt a megjegyzést minimalizálta
nem működik, mivel az összes cella mutatja az üzenetet, de szerkeszthetők
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia, lehetséges az oszlopokat közvetlenül az oszlopok feletti dátum szerint zárolni?
A weboldal moderátora ezt a megjegyzést minimalizálta
Private Sub workheet_Change(ByVal Target As Range)

'Feliratkozni http://youtube.com/excel10tutorial

„Támogatd a csatornát adományokkal http://patreon.com/excel10tutorial

Dim col As Range

'Állítsa be a megfelelő lapnevet:

A ThisWorkbook.Sheets segítségével ("AGOSTO-22")

.Szüntesse meg az "ABCDE" védelmét

Minden oszlophoz: .UsedRange.Columns

col.EntireColumn.Locked = col.Range("A1").Érték <> Dátum

Következő col

.Protect "ABCDE"

.EnableSelection = xlNoRestrictions

Vége

End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
szia, lehet-e zárolni bizonyos cellákat attól függően, hogy melyik dátum közvetlenül felettük van egy oszlopban?
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Lusis
Kifejtenéd konkrétabban a problémádat? Vagy csatolhat egy képernyőképet a problémaként.
Köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Skyyang

Igen, itt van egy képernyőkép. Remélem ez segít.
A weboldal moderátora ezt a megjegyzést minimalizálta
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Lucis!
Azt akarja mondani, hogy zárolja azokat az oszlopokat, amelyek dátuma elmúlt, és csak a mai és a jövőbeli napok oszlopai módosíthatók?
A weboldal moderátora ezt a megjegyzést minimalizálta
Helyes! Hogy mennék hozzá?
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Luis,
Mit szólnál a dátum cellához az A1-ben? Manuálisan vagy a =now() képlettel kell megadni? Ha ez egy képletcella, akkor a zárolt oszlopok a dátumváltozással együtt módosulnak.
Várom válaszát!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Skyyangg

igen, az A1 cellában van a =most() képlet.

köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló .....


Az összes sor védelme kódot használom, kivéve a mai dátum sort.......



Private Sub Worksheet_SelectionChange (ByVal Target as Range)
'Frissítés által Extendoffice 20161025
Ha Tartomány("A" & Selection.Row).Érték <> Dátum Akkor
ActiveSheet.Protect Password:="111111"
MsgBox "Csak a mai dátumsor szerkeszthető!", vbInformation, "Kutools for Excel"
ElseIf Tartomány("E" & Selection.Row).Érték = dátum akkor
ActiveSheet.Unprotect Password:="111111"
ActiveSheet.EnableSelection = xlNoRestrictions
Ha véget
End Sub


Miután elmentem az i-t és a cellára kattintok, üzenetet kapok, csak a mai dátum sorát lehet szerkeszteni... de ha duplán kattintok a cellára, akkor szerkeszthetem... kérem segítség
A weboldal moderátora ezt a megjegyzést minimalizálta
Ez remekül működik. de hogyan tudom átkapcsolni úgy, hogy a 3. sorban lévő dátumok alapján feloldja az oszlop zárolását?
A weboldal moderátora ezt a megjegyzést minimalizálta
Mint valaki, aki viszonylag új a VBA-ban, elmagyarázná, miért xRow = 2 a 4. sorban?



Kösz
A weboldal moderátora ezt a megjegyzést minimalizálta
mert a sz. 1 fejléce van
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,

a kód futtatása közben az ábrán látható hibaüzenetet kapok
Mellékelek egy pillanatképet is az excelemről, ahol módosítani szeretnék.

Meg tudod mutatni a kódomban, hogy hol kell módosítani az excel fájlom szerint, hogy a csak mai és jövőbeli dátumot tartalmazó cellák szerkeszthetők legyenek???
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Karan
Mivel a táblázatban egyesített cellák vannak, a fenti kód nem alkalmazható megfelelően az egyesített cellák táblázatában.
Ha van más jó ötleted, írd meg kommentben. Köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló! Megpróbáltam ugyanezt tenni, de a mai dátum oszlop kivételével az összes oszlopot VBA kóddal védeni úgy, hogy a „Selection.Row” helyett „Selection.Columns”-t, az „E”-t pedig „5”-re cseréltem (sorszám, ahol a dátumok vannak), de Folyamatosan 1004-es hibaüzenetet kapok!

Bármilyen segítséget kérünk?

Köszönöm
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló! Megpróbáltam ugyanezt tenni, de a mai dátum oszlop kivételével az összes oszlopot VBA kóddal védeni úgy, hogy a „Selection.Row” helyett „Selection.Columns”-t, az „E”-t pedig „5”-re cseréltem (sorszám, ahol a dátumok vannak), de Folyamatosan 1004-es hibaüzenetet kapok!

Bármilyen segítséget kérünk?

Köszönöm
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló,
Ahhoz, hogy ezt a kódot a szükséges oszlopokra alkalmazza, használja a következő VBA-kódot: (Megjegyzés: A kódban az 5 a dátumot tartalmazó sorszám, kérjük, módosítsa igénye szerint.)

Private Sub Worksheet_SelectionChange (ByVal Target as Range)
Dim xrg mint tartomány
Set xRg = Target.Worksheet.Cells(5, Target.Oszlop)
Ha xRg <> Dátum Akkor
ActiveSheet.Protect Password:="111111"
MsgBox "Csak a mai dátumsor szerkeszthető!", vbInformation, "Kutools for Excel"
ElseIf xRg.Value = Dátum Akkor
ActiveSheet.Unprotect Password:="111111"
ActiveSheet.EnableSelection = xlNoRestrictions
Ha véget
End Sub

Próbáld ki, remélem tud segíteni!
A weboldal moderátora ezt a megjegyzést minimalizálta
Köszönöm! Elnézést, de eddig nem kaptam meg a választ, lehet, hogy az e-mailemben van probléma.

Működött! Nem lehet elégszer megköszönni! Ezt nagyon nagyra értékelem!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,
Örülök, hogy segíthet!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,

Megpróbálom kibővíteni, hogy megvédjem azokat az oszlopokat, amelyek nem tartalmazzák az aktuális hónapot és/vagy az aktuális hetet. Megpróbáltam a "Dátum" kifejezést "hónap" vagy "hét"-re cserélni, de nem sikerült.

Csatoltam egy mintát a hetes lapot, ahol a felhasználó nem szerkeszthet vagy írhat be más oszlopokat, csak ezen a héten.

Valami tanács erre? vagy használjam a tényleges dátumokat a hónap egy napjának tükrözésére?
A weboldal moderátora ezt a megjegyzést minimalizálta
Köszönöm a segítséget, nagyon köszönöm barátom, ez nagy segítség. és oldotta a feszültségemet.
Biztonságosan
Üdvözlettel: Rohit Khanna
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia! Egy problémával szembesülök. Ha bezárom a fájlt, és ugyanazon a napon újra megnyitom, a kód nem működik. pls segíts elakadtam
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia rohit,
A kód megtartásához mentse el a munkafüzetet Excel Macro-Enabled Workbook formátumban, próbálja meg, köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
szia megcsináltam de ha megnyomom a cella üzenetet mutatja hogy nem lehet szerkeszteni de ha megnyomom a billentyûzetet akkor is tudok írni a cellába
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia! Szeretném megvédeni a jövő napjait, és engedélyezni szeretném a jelenlegi és az elmúlt napok szerkesztését. Hogyan csináljam?
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló, Miguel! A jövő napjának védelme érdekében kérjük, alkalmazza az alábbi kódot: Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Frissítés által Extendoffice
Dim xRow As Long
xSor = 2
ThisWorkbook.ActiveSheet.Unprotect Password:="111111"
ThisWorkbook.ActiveSheet.Cells.Locked = Hamis
Végezzen addig, amíg üres (Cellák (xSor, 5))
Ha Cells(xRow, 5) > Dátum akkor
Sorok(xRow).Zárolt = Igaz
Ha véget
xRow = xRow + 1
Hurok
ThisWorkbook.ActiveSheet.Protect Password:="111111"
Az alprogram vége Kérjük, próbálja meg, remélem segíthet!
Még senki sem írt megjegyzést
Hagyja meg észrevételeit
Feladás vendégként
×
Értékeld ezt a bejegyzést:
0   Karakterek
Javasolt helyek

Kövess minket

Copyright © 2009 - www.extendoffice.com. | Minden jog fenntartva. Powered by ExtendOffice. | Oldaltérkép
A Microsoft és az Office logó a Microsoft Corporation védjegyei vagy bejegyzett védjegyei az Egyesült Államokban és / vagy más országokban.
Sectigo SSL védi