Umetanje datumskog vremena u Excel pomoću VBA jednostavno je kao pisanje formule u ćeliju.
VBA kôd vremenske oznake je:
Raspon ("A1"). Vrijednost = Format (sada, "mm/dd/ggggg HH: mm: ss")Ovaj kôd prikazuje trenutni datum i vrijeme u ćeliji A1. I da, to je to. gotovo je.
Funkcija "Sada" vraća trenutni datum i vrijeme, a funkcija "Oblikovanje" formatira izlaz u format "mm/dd/gggg HH: mm: ss".
Prikažite datum i vrijeme kad god se promijeni pomoću VBA.
Recimo da ste pripremili list. Na ovom listu želite da se vrijeme prikazuje u stupcu B kad god netko unese stupac A.
Sada nam je potreban kod vremenske oznake VBA koji se pokreće svaki put kada se izvrši promjena u stupcu A.
Donji kod lako obavlja posao.
Pokreni makronaredbu kada se izvrši promjena (Rukovalac događajima promjene radnog lista)
Privatni podradni list_Promijeni (ByVal cilj kao raspon) Ako se ne presijeca (cilj, raspon ("A: A")) nije ništa ThenOn Greška Nastavi dalje ako Target.Value = "" ThenTarget.Offset (0, 1) = "" Else Target .Offset (0, 1) .Value = Format (Sada, "mm/dd/gggg HH: mm: ss") End If End If End Sub
Da biste pokrenuli ovaj kôd, otvorite VBA i dvaput kliknite na list u prozoru projekta na kojem želite prikazati vremensku oznaku.
Sada moramo koristiti VBA rukovatelj događaja jer želimo pokrenuti naš kôd za izvođenje svaki put kad se izvrši promjena.
Na padajućem izborniku iznad koda odaberite Radni list.
Sada, pokraj padajućeg izbornika radnog lista, vidite još jedan padajući izbornik. Sadrži mnogo upravljača događajima. Za sada odaberite "promijeni".
Sada kopirajte gornji kod ovdje.
I to je učinjeno. Vratite se na svoj list i provjerite ga.
Objašnjenje koda:
- Kôd je napisan na listu 1 dvostrukim klikom na njega. To znači da vaš kôd pripada samo ovom listu.
- Koristili smo "Promijeni" upravljač događajima "Radnog lista" za pokretanje našeg VBA koda.
-
Privatni podradni list_Promjena (ByVal cilj kao raspon)
Ovo je fiksni i zadani naziv potprograma rukovatelja događajima promjene.
- Želimo da naš kôd pokrene promjenu samo u stupcu A.
-
Ako se ne presijeca (cilj, domet ("A: A")) nije ništa
Ovaj redak provjerava je li promijenjena ćelija u stupcu A ili nije.
- Sada, ako gornji redak vraća vrijednost True, tada se ti retci izvršavaju
Uključeno Greška Nastavi dalje Ako je Target.Value = "" ThenTarget.Offset (0, 1) = "" ElseTarget.Offset (0, 1) .Value = Format (Sada, "mm/dd/gggg HH: mm: ss")
Prvi redak zanemaruje pojavljivanje pogreške i pokreće ova dva retka. Ako izostavite Uključeno Pogreška Nastavi dalje vidjet ćete pogrešku koja se pojavljuje kada izbrišete vrijednost u stupcu A.
Ako je Target.Value = "" Onda
:- Ovaj redak provjerava je li ćelija u stupcu A prazna. Ako da onda
Target.Offset (0, 1) = ""
:- Ovaj redak briše vrijednost susjedne ćelije.
A ako je netočno
Else Target.Offset (0, 1) .Value = Format (Sada, "mm/dd/gggg HH: mm: ss")
:- Ovaj redak unosi trenutno vrijeme i datum u susjedstvu stupca A.
- Posljednja tri retka samo zatvaraju svoj odgovarajući blok. I gotovo je. Sada imate list koji daje točno vrijeme promjene izvršeno u ćeliji stupca A.
Možda ste primijetili da na padajućem popisu postoji nekoliko rukovatelja događajima. Igrajte se oko njih. Pokušajte shvatiti što svaki rukovatelj događajima radi. A ako imate poteškoća, zapišite ih u odjeljak komentara.
Umetnite vremensku oznaku datuma s VBA