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

Hogyan rögzítsük automatikusan a dátumot és az időt, amikor a cella megváltozik?

Könnyű számunkra a statikus dátum és idő manuális beszúrása, vagy a rendszer idővel változó dinamikus dátum beillesztése képlettel. Ha az értékek megváltoztatásakor vagy beírásakor automatikusan rögzíteni kívánja a dátumot és az időt, akkor ez a probléma némileg eltérő lehet. Ebben a cikkben azonban ezt a feladatot a következő lépésekkel oldhatja meg.

Automatikusan rögzítse a dátumot és az időt, amikor a cella VBA kóddal változik

Az Office fül lehetővé teszi a füles szerkesztést és böngészést az Office-ban, és sokkal könnyebbé teszi a munkáját ...
A Kutools for Excel megoldja a legtöbb problémát, és 80% -kal növeli a termelékenységet
  • Bármely újrafelhasználása: Adja hozzá a leggyakrabban használt vagy összetett képleteket, diagramokat és bármi mást a kedvenceihez, és a későbbiekben gyorsan használja fel újra.
  • Több mint 20 szöveges szolgáltatás: Szám kivonása a szöveges karakterláncból; Bontsa ki vagy távolítsa el a szövegek egy részét; Számok és pénznemek konvertálása angol szavakká.
  • Eszközök egyesítése: Több munkafüzet és lap egybe; Egyesítsen több cellát / sort / oszlopot adatok elvesztése nélkül; Az ismétlődő sorok és összeg összevonása.
  • Felosztott eszközök: Az adatok felosztása több lapra az érték alapján; Egy munkafüzet több Excel, PDF vagy CSV fájlhoz; Egy oszlop több oszlopra.
  • Ugrás beillesztése Rejtett / szűrt sorok; Gróf és összeg háttérszínnel; Személyre szabott e-maileket küldhet több címzettnek tömegesen.
  • Szuper szűrő: Hozzon létre speciális szűrősémákat, és alkalmazza azokat bármilyen lapra; Fajta hét, nap, gyakoriság és egyebek szerint; Szűrő félkövérrel, képletekkel, megjegyzésekkel ...
  • Több mint 300 hatékony funkció; Működik az Office 2007-2021 és 365 verziókkal; Támogatja az összes nyelvet; Könnyű üzembe helyezés a vállalkozásban vagy szervezetben.

nyíl kék jobb buborék Automatikusan rögzítse a dátumot és az időt, amikor a cella VBA kóddal változik

Például van egy értéktartományom, és most, amikor új értékeket módosítok vagy beírok a B oszlopba, azt akarom, hogy automatikusan rögzítsék az aktuális dátumot és időt a C oszlopban, az alábbi képernyőkép szerint:

doc-update-time-value-changes-1

Ezt a feladatot a VBA kód követésével fejezheti be. Kérjük, tegye a következőket:

1. Tartsa lenyomva a ALT + F11 billentyűk megnyitásához Microsoft Visual Basic for Applications ablak.

2. Ezután válassza ki a használt munkalapot balról Project Explorer, kattintson duplán a fájl megnyitásához Modulok, majd másolja és illessze be a következő VBA kódot az üres modulba:

VBA kód: A cella változásakor automatikusan rögzíti a dátumot és az időt

Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target)
xOffsetColumn = 1
If Not WorkRng Is Nothing Then
    Application.EnableEvents = False
    For Each Rng In WorkRng
        If Not VBA.IsEmpty(Rng.Value) Then
            Rng.Offset(0, xOffsetColumn).Value = Now
            Rng.Offset(0, xOffsetColumn).NumberFormat = "dd-mm-yyyy, hh:mm:ss"
        Else
            Rng.Offset(0, xOffsetColumn).ClearContents
        End If
    Next
    Application.EnableEvents = True
End If
End Sub

doc-update-time-value-changes-1

3. Ezután mentse el és zárja be ezt a kódot, hogy visszatérjen a munkalapra. Most, amikor megváltoztatja a cella értékét, vagy új adatokat ír be a B oszlopba, a dátum és az idő automatikusan rögzítésre kerül a C oszlopban.

Megjegyzések:

1. A fenti kódban módosíthatja aB: B”Bármely más oszlopra, ahol meg akarja változtatni a cella értékeit ebben a szkriptben: WorkRng beállítása = Metszés (Application.ActiveSheet.Range ("B: B"), Cél).

2. Ezzel xOffsetColumn = 1 szkriptet, beillesztheti és frissítheti a dátumot és az időt a változó érték oszlop melletti első oszlopba, megváltoztathatja az 1 számot más számokra, például 2,3,4,5 ... ez azt jelenti, hogy a dátum beillesztésre kerül második, harmadik, negyedik vagy ötödik oszlop a megváltozott értékek oszlop mellett.

3. Ha töröl egy értéket a megváltozott oszlopból, a dátum és az idő is törlődik.


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 (108)
Még nincs értékelés. Legyen Ön az első, aki értékel!
A weboldal moderátora ezt a megjegyzést minimalizálta
Hogyan írd fel a kódot, hogy ezt többször is megtedd egy oldalon Pl. szöveg a B oszlopban, dátum C és szöveg D, dátum E?
A weboldal moderátora ezt a megjegyzést minimalizálta
[quote]Hogyan írod be a kódot, hogy ezt többször is megtedd egy oldalon Pl. szöveg a B oszlopban, dátum C és szöveg D, dátum E?Hilary[/quote] Tudom, hogy ez régi, de a hosszú, mégis egyszerű módszer a változódeklarációk másolása és új változók létrehozása (pl. WorkRng1 és Rng1). Másolnod kell az "if" utasítást is, és módosítanod kell a változókat az új változónevekre.
A weboldal moderátora ezt a megjegyzést minimalizálta
[quote]Hogyan írod be a kódot, hogy ezt többször is megtedd egy oldalon Pl. szöveg a B oszlopban, dátum C és szöveg D, dátum E?Hilary[/quote] Itt van a kód: Private Sub Worksheet_Change(ByVal Target As Range) 'Frissítés 20140722 Dim WorkRng As Range Dim Rng As Range Dim xOffsetColumn As Integer 'Módosítsa a tartományt a frissítendő oszlop kiválasztásához ("A: A") vagy ("B:B") Set WorkRng = Metszéspont(Application.ActiveSheet.Range("E:E"), Target) xOffsetColumn = 1 'A második időbélyeghez 'Hozzon létre új változóneveket, például WorkRng1, Rng1 stb. Dim WorkRng1 As Range Dim Rng1 As Range Dim xOffsetColumn1 As Integer Set WorkRng1 = Metszés(Alkalmazás.ActiveSheet.Range("G:G"), Target) xOffsetOszlop1 = 1 'Első alkalommal nincs bélyegző Ha nem működikRng Akkor Application.EnableEvents = Hamis minden Rng In WorkRng esetén Ha nem VBA.IsEmpty(Rng.Value) akkor Rng.Offset(0, xOffsetOszlop).Érték = Most Rng.Offset(0, xOffsetColumn).NumberFormat = "mm/dd/ éééé nts = Hamis minden Rng0 esetén a WorkRng1-ben Ha nem VBA.IsEmpty(Rng1.Value) akkor Rng1.Offset(1, xOffsetOszlop1).Érték = Most Rng0.Offset(1, xEltolásOszlop1).Számformátum = "hh/nn/yyyy" Else Rng0.Offset(1, xOffsetColumn1).ClearContents End If Next Application.EnableEvents = True End If End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Mi a teendő, ha ezt egy sor oszlophoz szeretném megtenni?
A weboldal moderátora ezt a megjegyzést minimalizálta
módosítsa a tartományt (B:B) a következőképpen: (10:20) a 10-től 20-ig terjedő oszlopokhoz (D5:D40) az 5-től 40-ig terjedő oszlopokhoz a D sorban Remélhetőleg segít.
A weboldal moderátora ezt a megjegyzést minimalizálta
Elnézést, az oszlopokat sorokkal cserélem, de még mindig működik. (D:P) D oszloptól P-ig (D5:D5) D oszloptól P-ig az 5. sorban
A weboldal moderátora ezt a megjegyzést minimalizálta
amikor elmentem, működik, de amikor újra megnyitom, nem működik
A weboldal moderátora ezt a megjegyzést minimalizálta
[quote] Amikor elmentem, működik, de amikor újra megnyitom, nem működikAarif által[/quote] Ugyanaz a probléma, mint az Aarif... Fél órával ezelőtt még működött, most pedig nem... és csak az időt akartam, nem a dátumot ÉS az időt, ezért szerkesztettem a ".NumberFormat"-ot, hogy legyen. csak hh:mm:ss, elmentve, tesztelve... nem másként... még mindig a dátumot és az időt...? újra kinyitottam a VB-t, és beírtam néhány elválasztott szöveget, újra elmentettem, még mindig nem jó, aztán megcsináltam harmadszor is, és a formátum úgy csinálta, ahogy mondták, és hirtelen megérkezett az idő. NAGYON fura Régóta azt hittem, hogy az Excell kísérteties, amióta először használtam a KERESÉS funkciót, olyan értéket keresve egy cellában, amit a saját szememmel láthatok, de az Excel ragaszkodott hozzá, hogy nem létezik!? Van olyan Excel-guru vagy ördögűző, aki segíthet? miért figyelmen kívül hagyja a VB-met, és NEM időbélyegzik, mint tette...? köszönöm :cry:
A weboldal moderátora ezt a megjegyzést minimalizálta
[quote]Hogyan írod be a kódot, hogy ezt többször is megtedd egy oldalon Pl. szöveg a B oszlopban, dátum C és szöveg D, dátum E?Hilary[/quote] mi a válasz az idézetre
A weboldal moderátora ezt a megjegyzést minimalizálta
Mi a teendő, ha azt akarom, hogy ez fusson, de nem vagyok aktív lapon, ezért futtassam a háttérben, és frissítsd, amikor bejegyzés van a B oszlopban?
A weboldal moderátora ezt a megjegyzést minimalizálta
Mi van akkor, ha az időbélyegző oszlopot befolyásoló oszlop több másik oszlop összege? Például... A H oszlop =Sum(E+F+G), és szeretném, ha az I. oszlopban időbélyegző lenne minden alkalommal, amikor a H oszlopot megváltoztatták, vagy lényegében ha az E, F vagy G oszlopot megváltoztatták. . kérlek segíts??
A weboldal moderátora ezt a megjegyzést minimalizálta
Segítségre van szükségem! Igyekszem időbélyeget készíteni minden alkalommal, amikor a három cella közül egyet megváltoztatunk. Ideális esetben ezt akkor szeretném megtenni, ha ezen cellák összege megváltozott. Például. Az E, F, G cellák megváltoznak, és a H cella ennek a három cellának az ÖSSZEGE lesz. Ha a H cellát megváltoztatták, azt szeretném, ha az I cellát időbélyeggel látnák el. Van erre lehetőség?? Nagyon szépen köszönöm
A weboldal moderátora ezt a megjegyzést minimalizálta
Megpróbálom futtatni a fenti kódot; azonban az a cella, amelynek változását rögzíteni akarom, egy jelölőnégyzethez van kapcsolva, ezért „IGAZ” vagy „HAMIS”. Valamilyen oknál fogva a kód nem fog működni, ha a cella megváltozik. Ha azonban manuálisan beszúrom azt, hogy „igen”, a kód jól működik. Tud valami megoldást erre a problémára? Köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Lehetséges ez a történelmi adatokhoz? Ha tegnap vagy egy hónapja módosítottam egy cellát, használhatom ennek a kódnak a formáját a dátumok lekéréséhez?
A weboldal moderátora ezt a megjegyzést minimalizálta
Van mód időbélyegzésre egy konkrét változás alapján? Például van egy táblázatom, amelyen a legördülő opciók oszlopa található, beleértve az üres, „OK” és „Cselekvés” opciókat. Amikor a feladat befejeződött, a legördülő menüből manuálisan válassza ki az „Ok” lehetőséget. Azt szeretném, ha a dátumbélyegző az „Ok” kiválasztásakor lenne kötve, de nem az „Act” kiválasztásakor. A legördülő menü „Cselekvése” opciója akkor használatos, ha egy feladat lejárt, de valójában csak azt próbálom követni, hogy egy tétel mikor fejeződik be. Meg lehet ezt valósítani a fenti kóddal? Kösz!
A weboldal moderátora ezt a megjegyzést minimalizálta
Sikerült ezt megoldani?
A weboldal moderátora ezt a megjegyzést minimalizálta
ez nagyon jó kérdés. megoldottad, megosztanád az utat?
köszönöm
A weboldal moderátora ezt a megjegyzést minimalizálta
Módosíthatom a tartományt a következőre ("A:Q"), de szükségem van a dátumra és az időre, hogy "S" legyen, ha az AQ cellában lévő adatokat módosítják/eltávolítják. VBA kihívott vagyok. Minden segítséget nagyra értékelünk!
A weboldal moderátora ezt a megjegyzést minimalizálta
Elnézést, most tettem fel egy kérdést, és erre kell a válasz...biztos kihagytam ezt a megjegyzést...remélem valaki tud segíteni!
A weboldal moderátora ezt a megjegyzést minimalizálta
Hogyan változtathatom meg, hogy csak a szomszédos cella dátuma változzon?
A weboldal moderátora ezt a megjegyzést minimalizálta
Hogyan érhetem el, hogy az időbélyeg egy adott cellában rögzítsen a módosított cella melletti cella helyett? Megpróbálok egy cellasort időbélyeggel ellátni, amikor változás történik ezekben a cellákban. Szeretném, ha az időbélyeg egy adott cellában rögzítené... tud valaki ebben segíteni? Köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia! Köszönjük szépen, mert ez nagyszerű a WB auditálhatóságához. Van mód ennek megváltoztatására, hogy a dátum/idő naplózásra kerüljön valahol a WB-n, amikor egy megjegyzést hozzáadnak vagy módosítanak? Tudom, hogy ez egy általános kérdés, de nem vagyok benne biztos, hogy lehetséges-e (sajnos MS 2010 esetén a .comment tulajdonság nem tartalmaz dátum tulajdonságot a beírás időpontjának azonosítására. Mike
A weboldal moderátora ezt a megjegyzést minimalizálta
Hogyan konfigurálhatom, hogy az A:A oszlopot csak akkor olvassa el, és csak akkor adjon időbélyeget a B:B-ben, ha 14 jegyű szám van beírva?
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia, VBA kódolási segítségre lenne szükségem. Létrehozok egy táblázatot olyan esetekkel, amelyek az emberekhez lesznek hozzárendelve, és amelyek állapotuk van. A jogosultak a H oszlopban lesznek, és szükségem van egy dátumbélyegzőre az I. oszlopban, amikor a H oszlopban lévő cella névvel frissül vagy megváltozik. Hasonlóképpen a J oszlopban lesz az eset állapota, és szükségem lesz egy dátumbélyegzőre a K oszlopban, amikor egy állapotot megadnak vagy módosítanak. akkor is, ha nem engedményezett neve vagy állapota van, az I. és K. oszlopban lévő dátumbélyegzőt üresen kell hagynom. Bármilyen segítséget szívesen vennénk. Kösz
A weboldal moderátora ezt a megjegyzést minimalizálta
Ezt a kódot máshol találtam, és saját használatra módosítottam. Ha megfelelően csinálja, akkor nem kell aggódnia amiatt, hogy egy függvényt beír egy cellába, vagy a fájl minden megnyitásakor az adott nap dátumára módosítja a dátumokat. - nyissa meg az Excelt - nyomja meg az "Alt+F11" billentyűt - Kattintson duplán arra a munkalapra, amelyen alkalmazni szeretné a változtatást (a bal oldalon található) - másolja/illessze be az alábbi kódot - állítsa be a Tartomány(_:_) bevitelt a megfelelőre a frissíteni kívánt oszlophoz - állítsa be az Offset(0,_) bemenetet, hogy megfeleljen annak az oszlopnak, ahol a dátumot szeretné megjeleníteni (az alábbi verzióban a D oszlopot frissítem, és a dátumot szeretném az F oszlopban megjeleníteni, ezért a "2" beviteli bevitel 2 oszlopra a D) oszlop felett - nyomja meg a mentés gombot - ismételje meg a fenti lépéseket, ha a munkafüzetben vannak más munkalapok, amelyeknek ugyanaz a kód szükséges - előfordulhat, hogy módosítania kell a a dátumot "Általános" értékre állítsa, és növelje az oszlop szélességét, ha a "####" jelenik meg, miután frissített bejegyzést tett Copy/Paste Code: __________________________________________________________________ Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range(") D:D")) Nincs semmi, akkor kilépés a részcélból. Eltolás(0, 2) = Dátum vége Sub ___ _________________________________________________________ Sok szerencsét...
A weboldal moderátora ezt a megjegyzést minimalizálta
ez a kód a kattintáskor mutatja a dátumot, csak a cella tartalmának módosítása esetén lehet dátumot mutatni, ha csak rákattint, és nem változik semmi, akkor a dátum nem jelenik meg, vagy a korábban megadott dátum marad?
A weboldal moderátora ezt a megjegyzést minimalizálta
Amikor makróban rögzítek egy vloocup képletet, akkor hogyan tudom megtenni, hogy ez a dátum automatikusan 1 napra módosult, mint 21., majd másnap 07-re módosult. Automatikusan oszd meg, ha van vba kód.
A weboldal moderátora ezt a megjegyzést minimalizálta
cserélje ki ezt a sort
Rng.Offset(0, xOffsetColumn).Érték = Most

nak nek
Rng.Offset(0, xOffsetColumn).Érték = Most+1
A weboldal moderátora ezt a megjegyzést minimalizálta
Köszönöm szépen a kódot! Pont amit kerestem!!
A weboldal moderátora ezt a megjegyzést minimalizálta
Köszönöm a segítségedet :-)
Még senki sem írt megjegyzést
Több ingatlan
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