Vstavljanje datumskega časa v Excel z uporabo VBA je tako preprosto kot pisanje formule v celico.
Koda časovnega žiga VBA je:
Razpon ("A1"). Vrednost = Oblika (zdaj, "mm/dd/llllll HH: mm: ss")Ta koda bo prikazala trenutni datum in čas v celici A1. In ja, to je to. opravljeno je.
Funkcija »Zdaj« vrne trenutni datum in čas, funkcija »Oblikovanje« pa format izpiše v format »mm/dd/llllll HH: mm: ss«.
Prikažite datum in čas vsakič, ko se izvede sprememba z uporabo VBA.
Recimo, da ste pripravili list. Na tem listu želite, da se v stolpcu B prikaže čas, ko nekdo vnese stolpec A.
Zdaj potrebujemo kodo časovnega žiga VBA, ki se zažene vsakič, ko se spremeni stolpec A.
Spodnja koda olajša delo.
Zaženi makro, ko se izvede sprememba (upravljavec dogodkov spremembe delovnega lista)
Zasebni pod -delovni list_Sprememba (cilj ByVal kot obseg) Če se ne preseka (cilj, obseg ("A: A")) ni nič, potem napaka se nadaljuje, če se Target.Value = "" ThenTarget.Offset (0, 1) = "" Else Target .Offset (0, 1) .Value = Format (Now, "mm/dd/yyyy HH: mm: ss") End If End If End Sub
Če želite zagnati to kodo, odprite VBA in dvokliknite list v oknu projekta, na katerem želite prikazati časovni žig.
Zdaj moramo uporabiti upravljalnik dogodkov VBA, saj želimo, da se koda zažene vsakič, ko pride do spremembe.
V spustnem meniju nad kodo izberite Delovni list.
Zdaj ob spustnem seznamu delovnega lista vidite še en spustni meni. Vsebuje veliko upravljavcev dogodkov. Za zdaj izberite »spremeni«.
Zdaj tukaj kopirajte zgornjo kodo.
In to je storjeno. Vrnite se na svoj list in ga preverite.
Koda Pojasnilo:
- Koda je napisana na list1 z dvojnim klikom nanjo. To pomeni, da vaša koda pripada le temu listu.
- Za sprožitev kode VBA smo uporabili upravljalnik dogodkov »Spremeni«.
-
Zasebni pod -delovni list_Sprememba (cilj ByVal kot obseg)
To je fiksno in privzeto ime podprograma upravljalnika dogodkov spremembe.
- Želimo, da se naša koda izvede samo v stolpcu A.
-
Če se ne križa (cilj, doseg ("A: A")), potem ni nič
Ta vrstica preveri, ali je spremenjena celica v stolpcu A ali ne.
- Zdaj, če zgornja vrstica vrne True, se te vrstice izvedejo
Vklop Napaka Nadaljuj Naprej Če je Target.Value = "" PotemTarget.Offset (0, 1) = "" ElseTarget.Offset (0, 1) .Value = Format (Zdaj, "mm/dd/llll Lh: mm: ss")
Prva vrstica prezre napako pop in zažene te dve vrstici. Če izpustite On Napaka Nadaljuj Naprej Ko izbrišete vrednost v stolpcu A, se prikaže napaka.
Če je Target.Value = "" Potem
:- Ta vrstica preveri, ali je celica v stolpcu A prazna. Če da, potem
Target.Offset (0, 1) = ""
:- Ta vrstica izbriše vrednost sosednje celice.
In če je napačno
Else Target.Offset (0, 1) .Value = Format (Now, "mm/dd/yyyy HH: mm: ss")
:- Ta vrstica vnese trenutni čas in datum v sosednji stolpec A.
- Zadnje tri vrstice pa zaprejo svoj blok. In končano je. Zdaj imate list, ki prikazuje natančen čas spremembe v celici stolpca A.
Morda ste opazili, da je na spustnem seznamu več upravljavcev dogodkov. Igrajte se okoli njih. Poskusite ugotoviti, kaj deluje vsak upravljavec dogodkov. In če imate težave, jih zapišite v odsek za komentarje.
Vstavite časovno oznako datuma z VBA