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

Kako samodejno zabeležiti datum in uro, ko se celica spremeni?

Z lahkoto lahko ročno vstavimo statični datum in uro ali pa s formulo vstavimo dinamični datum, ki se spreminja s sistemskim časom. Če želite samodejno zabeležiti datum in uro, ko spremenite ali vnesete vrednosti, je ta težava morda nekoliko drugačna. Toda v tem članku lahko to nalogo rešite z naslednjimi koraki.

Samodejno zapišite datum in čas, ko se celica spremeni s kodo VBA

Kartica Office Omogočite urejanje in brskanje z zavihki v storitvi Office ter olajšajte svoje delo ...
Kutools za Excel rešuje večino vaših težav in poveča vašo produktivnost za 80%
  • Ponovno uporabi vse: Med priljubljene dodajte najbolj uporabljene ali zapletene formule, grafikone in kar koli drugega ter jih v prihodnosti hitro ponovno uporabite.
  • Več kot 20 besedilnih funkcij: Izvleček številke iz besedilnega niza; Izvleči ali odstrani del besedil; Pretvorite številke in valute v angleške besede.
  • Združi orodja: Več delovnih zvezkov in listov v eno; Združi več celic / vrstic / stolpcev brez izgube podatkov; Združi podvojene vrstice in vsoto.
  • Razdeljena orodja: Razdeli podatke na več listov na podlagi vrednosti; En delovni zvezek v več datotek Excel, PDF ali CSV; En stolpec na več stolpcev.
  • Prilepi preskoči Skrite / filtrirane vrstice; Štetje in vsota glede na Barva ozadja; V večjem obsegu pošiljajte osebna e-poštna sporočila več prejemnikom.
  • Super filter: Ustvarite napredne filtrirne sheme in uporabite za vse liste; Razvrščanje po tednih, dnevih, pogostosti in še več; filter s krepkim tiskom, formule, komentar ...
  • Več kot 300 zmogljivih funkcij; Deluje z Office 2007-2021 in 365; Podpira vse jezike; Enostavna uvedba v vašem podjetju ali organizaciji.

puščica modri desni mehurček Samodejno zapišite datum in čas, ko se celica spremeni s kodo VBA

Na primer, imam vrsto vrednosti in zdaj, ko spremenim ali vtipkam nove vrednosti v stolpec B, želim, da bodo samodejno zabeležili trenutni datum in čas v stolpec C, kot je prikazano na sliki spodaj:

doc-update-time-value-changes-1

To nalogo lahko zaključite z naslednjo kodo VBA. Naredite to:

1. Držite tipko ALT + F11 tipke za odpiranje Okno Microsoft Visual Basic for Applications.

2. Nato na levi izberite uporabljeni delovni list Raziskovalec projektov, dvokliknite, da odprete Moduliin nato v prazen modul kopirajte in prilepite naslednjo kodo VBA:

Koda VBA: samodejno zabeleži datum in čas, ko se celica spremeni

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. Nato shranite in zaprite to kodo, da se vrnete na delovni list. Ko spremenite vrednost celice ali vnesete nove podatke v stolpec B, se datum in čas samodejno zapišeta v stolpec C.

Opombe:

1. V zgornji kodi lahko spremenite »B: B«V kateri koli drug stolpec, v katerem želite spremeniti vrednosti celic v tem skriptu: Nastavite WorkRng = Intersect (Application.ActiveSheet.Range ("B: B"), Target).

2. S tem xOffsetColumn = 1 lahko vstavite in posodobite datum in čas v prvi stolpec poleg stolpca s spreminjajočo se vrednostjo, številko 1 lahko spremenite v druge številke, na primer 2,3,4,5… to pomeni, da bo datum vstavljen drugi, tretji, četrti ali peti stolpec poleg stolpca s spremenjenimi vrednostmi.

3. Ko izbrišete vrednost v spremenjenem stolpcu, bosta odstranjena tudi datum in čas.


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 (108)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
Kako napisati kodo, da to storite večkrat na eni strani, npr. besedilo v stolpcu B, datum v C in besedilo v D, datum v E?
Ta komentar je moderator na spletnem mestu minimiziral
[quote]Kako napišete kodo, da to storite večkrat na eni strani, npr. besedilo v stolpcu B, datum v C in besedilo v D, datum v E?Avtor Hilary[/quote] Vem, da je to staro, vendar je dolg, a preprost način kopiranje deklaracij spremenljivk in ustvarjanje novih spremenljivk (tj. WorkRng1 in Rng1). Prav tako morate kopirati stavek "if" in spremeniti spremenljivke v nova imena spremenljivk.
Ta komentar je moderator na spletnem mestu minimiziral
[quote]Kako napišete kodo, da to storite večkrat na eni strani, npr. besedilo v stolpcu B, datum v C in besedilo v D, datum v E?Avtor Hilary[/quote] Tukaj je koda: Private Sub Worksheet_Change(ByVal Target As Range) 'Posodobi 20140722 Dim WorkRng As Range Dim Rng As Range Dim xOffsetColumn As Integer 'Spremenite obseg, da izberete stolpec, ki ga posodabljate, tj ("A: A") ali ("B:B") Nastavite WorkRng = Intersect(Application.ActiveSheet.Range("E:E"), Target) xOffsetColumn = 1 'Za drugi časovni žig 'Ustvarite nova imena spremenljivk, kot je WorkRng1, Rng1 itd. Dim WorkRng1 As Range Dim Rng1 As Range Dim xOffsetColumn1 As Integer Set WorkRng1 = Intersect(Application.ActiveSheet.Range("G:G"), Target) xOffsetColumn1 = 1 'Za prvi časovni žig Če ne WorkRng ni nič Nato Application.EnableEvents = False Za vsak Rng v WorkRng Če ni VBA.IsEmpty(Rng.Value) Potem Rng.Offset(0, xOffsetColumn).Value = Zdaj Rng.Offset(0, xOffsetColumn).NumberFormat = "mm/dd/ yyyy" Else Rng.Offset(0, xOffsetColumn).ClearContents Konec, če je naslednja Application.EnableEvents = True End, če 'Za drugi časovni žig Če ne WorkRng1 ni nič, potem Application.EnableEve nts = False za vsak Rng1 v WorkRng1 Če ni VBA.IsEmpty(Rng1.Value) Potem Rng1.Offset(0, xOffsetColumn1).Value = Zdaj Rng1.Offset(0, xOffsetColumn1).NumberFormat = "mm/dd/yyyy" Rng1.Offset(0, xOffsetColumn1).ClearContents Konec, če je naslednja aplikacija.EnableEvents = True End, če End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Kaj pa, če želim to narediti za vrsto stolpcev?
Ta komentar je moderator na spletnem mestu minimiziral
spremenite obseg (B:B) takole: (10:20) za stolpce od 10 do 20 (D5:D40) za stolpce od 5 do 40 v vrstici D Upam, da bo pomagalo.
Ta komentar je moderator na spletnem mestu minimiziral
Oprostite, zamenjam stolpce z vrsticami, vendar še vedno deluje. (D:P) Od stolpca D do P (D5:D5) od stolpca D do P v vrstici 5
Ta komentar je moderator na spletnem mestu minimiziral
ko shranim deluje, ko pa ponovno odprem, ne deluje
Ta komentar je moderator na spletnem mestu minimiziral
[quote]ko shranim deluje, ko pa ponovno odprem, ne delujeAvtor: Aarif[/quote] Enak problem kot Aarif... Pred pol ure je delovalo dobro, zdaj pa ne... tudi, želel sem samo čas, ne datum IN ura, zato sem uredil ".NumberFormat" tako, da je samo hh:mm:ss, shranil, testiral... nič drugače... še vedno dajem datum in uro...? ponovno odprl VB in vtipkal nekaj omejenega besedila, ponovno shranil, še vedno ni bilo dobro, potem sem to storil tretjič, in format je naredil, kot je bilo rečeno, in nenadoma sem dobil ravno čas. ZELO čudno. Dolgo sem mislil, da Excel straši, odkar sem prvič uporabil funkcijo ISKANJE in iskal vrednost v celici, ki bi jo lahko videl na lastne oči, vendar je Excel vztrajal, da ne obstaja!? Kateri Excel guruji ali eksorcisti, ki lahko pomagajo? zakaj ignorira moj VB in NE časovnega žiga, kot je ...? hvala :cry:
Ta komentar je moderator na spletnem mestu minimiziral
[quote]Kako napišete kodo, da to storite večkrat na eni strani, npr. besedilo v stolpcu B, datum v C in besedilo v D, datum v E?Avtor Hilary[/quote] kakšen je odgovor na citat
Ta komentar je moderator na spletnem mestu minimiziral
Kaj pa, če želim, da se to izvaja, vendar nisem na aktivnem listu, zato se izvaja v ozadju in posodablja vsakič, ko je vnos v stolpec B?
Ta komentar je moderator na spletnem mestu minimiziral
Kaj pa, če je stolpec, ki vpliva na stolpec časovnega žiga, vsota več drugih stolpcev? Na primer ... Stolpec H je =Sum(E+F+G) in želim, da se v stolpcu I naredi časovni žig vsakič, ko je bil stolpec H spremenjen ali v bistvu, ko so bili stolpci E, F ali G spremenjeni . Lahko prosim pomagate??
Ta komentar je moderator na spletnem mestu minimiziral
Potrebujem pomoč prosim! Poskušam narediti časovni žig vsakič, ko se spremeni ena od treh celic. V idealnem primeru bi to naredil, ko je bila vsota teh celic spremenjena. Na primer. Celice E, F, G bodo spremenjene in celica H bo VSOTA teh treh celic. Ko je bila celica H spremenjena, bi rad, da ima celica I časovni žig. Je to možno?? Najlepša hvala
Ta komentar je moderator na spletnem mestu minimiziral
Poskušam zagnati zgornjo kodo; vendar je celica, katere sprememba, ki jo želim zabeležiti, povezana s potrditvenim poljem in je zato bodisi "TRUE" ali "FALSE". Iz nekega razloga koda ne bo delovala, ko se celica spremeni. Če pa ročno vstavim reči "da", koda deluje dobro. Ali poznate kakšno rešitev za to težavo? Hvala vam!
Ta komentar je moderator na spletnem mestu minimiziral
Ali je to mogoče storiti za zgodovinske podatke? Če sem spremenil celico včeraj ali pred enim mesecem, ali lahko uporabim obliko te kode za pridobivanje teh datumov?
Ta komentar je moderator na spletnem mestu minimiziral
Ali obstaja način za časovni žig, ki temelji na določeni spremembi? Imam na primer preglednico s stolpcem s spustnimi možnostmi, vključno s prazno, 'V redu' in 'Deluj'. Ko je naloga končana, se spustni meni ročno uporabi za izbiro 'V redu'. Rad bi, da je datumski žig vezan na to, ko je izbrano 'V redu', ne pa, ko je izbrano 'Deluj'. Možnost 'Deluj' v spustnem meniju se uporablja, ko je naloga zamujena, vendar v resnici samo poskušam slediti, kdaj je predmet dokončan. Ali obstaja način, da to dosežete z zgornjo kodo? Hvala!
Ta komentar je moderator na spletnem mestu minimiziral
Ali ste to uspeli rešiti?
Ta komentar je moderator na spletnem mestu minimiziral
to je zelo dobro vprašanje. ali ste to rešili, ali lahko prosim delite pot?
hvala
Ta komentar je moderator na spletnem mestu minimiziral
Lahko spremenim obseg na ("A:Q"), vendar potrebujem datum in čas, da gresta v "S", če so podatki v kateri koli celici AQ spremenjeni/odstranjeni. Imam izziv VBA. Vsaka pomoč je zelo cenjena!
Ta komentar je moderator na spletnem mestu minimiziral
Oprostite, pravkar sem objavil vprašanje in potrebujem odgovor na tole...morda sem spregledal ta komentar...upam, da mi lahko kdo pomaga!
Ta komentar je moderator na spletnem mestu minimiziral
Kako ga spremenim, da se spremeni samo datum sosednje celice?
Ta komentar je moderator na spletnem mestu minimiziral
Kako pridobim, da se časovni žig zapiše v določeno celico, namesto v celico poleg tiste, ki je bila spremenjena. Poskušam imeti vrstico celic s časovnim žigom, ko pride do spremembe v kateri koli od teh celic, rad bi, da se časovni žig zapiše v eno določeno celico ... ali lahko kdo pomaga s tem? Hvala vam!
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, prijazno se vam zahvaljujem za to, saj je odlično za preglednost WB. Ali obstaja način, da se to spremeni, da se datum/čas zabeleži nekje na WB, kadar koli je dodan ali spremenjen komentar? Vem, da je to splošno vprašanje, vendar nisem prepričan, ali je to mogoče (žal za MS 2010 lastnost .comment ne vsebuje lastnosti datuma, da bi ugotovila, kdaj je bila vnesena. Mike
Ta komentar je moderator na spletnem mestu minimiziral
Kako lahko konfiguriram, da berem stolpec A:A in dam časovni žig v B:B samo, če je vanj vnesena 14-mestna številka?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, potrebujem pomoč pri kodiranju VBA. Izdelujem preglednico s primeri, ki bodo dodeljeni ljudem in bodo imeli status primera. Prejemniki bodo v stolpcu H in potrebujem datumski žig v stolpcu I, ko se celica v stolpcu H posodobi ali spremeni z imenom. Podobno bom imel status primera v stolpcu J in potreboval bom datumski žig v stolpcu K, ko se status vnese ali spremeni. tudi če ni ime ali status prejemnika, potrebujem, da je datumski žig v stolpcu I in K prazen. Vsaka pomoč bi bila hvaležna. Hvala
Ta komentar je moderator na spletnem mestu minimiziral
To kodo sem našel drugje in jo spremenil za svojo uporabo. Če je opravljeno pravilno, vam ni treba skrbeti, da bi v celico vnesli funkcijo ali datoteko, ki spreminja datume na datum tega dne vsakič, ko jo odprete. - odprite Excel - pritisnite "Alt+F11" - Dvokliknite delovni list, na katerem želite uporabiti spremembo (naveden na levi) - kopirajte/prilepite spodnjo kodo - prilagodite vnos Obseg(_:_), da ustreza v stolpec, ki ga boste posodobili - prilagodite vnos Offset(0,_) tako, da ustreza stolpcu, kjer želite, da je prikazan datum (v spodnji različici posodabljam stolpec D in želim, da je datum prikazan v stolpcu F, zato vnos vnosa "2" za 2 stolpca čez stolpec D) - pritisnite shrani - ponovite zgornje korake, če so v vašem delovnem zvezku drugi delovni listi, ki potrebujejo isto kodo - morda boste morali spremeniti številsko obliko stolpca, ki prikazuje datum na "Splošno" in povečajte širino stolpca, če se prikaže "####", potem ko vnesete posodobljen vnos Kopiraj/prilepi kodo spodaj: _____________________________________________________________ Zasebni pod delovni list_Change(ByVal Target As Range) If Intersect(Target, Range(" D:D")) Ni nič, potem Izhod iz podtargeta.Offset(0, 2) = Datum Konec Sub ___ _________________________________________________________ Vso srečo...
Ta komentar je moderator na spletnem mestu minimiziral
ta koda bo prikazala datum ob kliku se pojavi, ali je mogoče prikazati datum samo, ko se vsebina v celici spremeni, če je samo kliknjen in se nič ne spremeni, potem se datum ne prikaže ali prej vneseni datum ostane?
Ta komentar je moderator na spletnem mestu minimiziral
Ko imam zapis v makru, formulo vloocup, kako lahko naredim, da se ta datum samodejno spremeni na 1 dan navzgor.
Ta komentar je moderator na spletnem mestu minimiziral
zamenjaj to vrstico
Rng.Offset(0, xOffsetColumn).Value = Zdaj

do
Rng.Offset(0, xOffsetColumn).Vrednost = Zdaj+1
Ta komentar je moderator na spletnem mestu minimiziral
Najlepša hvala za kodo! Točno to kar sem iskal!!
Ta komentar je moderator na spletnem mestu minimiziral
Hvala za vašo pomoč :-)
Tu še ni objavljenih komentarjev
Obremenitev Več
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