Introducerea datei și orei în Excel folosind VBA este la fel de simplă ca și scrierea unei formule într-o celulă.
Codul de marcaj de timp VBA este:
Gama („A1”). Valoare = Format (acum, "mm / zz / aaaa HH: mm: ss")Acest cod va arăta data și ora curente în celula A1. Și da, asta este. este gata.
Funcția „Acum” returnează data și ora curente, iar funcția „Format” formează ieșirea în format „mm / zz / aaaa HH: mm: ss”.
Afișați data și ora ori de câte ori se face o modificare folosind VBA.
Să presupunem că ați pregătit o foaie. În această foaie, doriți ca timpul să fie afișat în coloana B ori de câte ori cineva face o intrare Coloana A.
Acum avem nevoie de un cod de marcare temporală VBA care rulează de fiecare dată când se face schimbarea în coloana A.
Codul de mai jos face munca cu ușurință.
Executați macro când se face o modificare (Handler Event Event Change Handler)
Private Sub Worksheet_Change (ByVal Target As Range) Dacă nu se intersectează (Target, Range ("A: A")) is Nothing ThenOn Error Reîncepeți Next If Target.Value = "" ThenTarget.Offset (0, 1) = "" Else Target .Offset (0, 1) .Value = Format (Acum, "mm / zz / aaaa HH: mm: ss") End If End If End Sub
Pentru a rula acest cod, deschideți VBA și faceți dublu clic pe foaia din fereastra proiectului pe care doriți să afișați marca de timp.
Acum trebuie să folosim gestionarul de evenimente VBA, deoarece vrem să rulăm codul nostru pentru a rula de fiecare dată când se face o modificare.
Din meniul derulant de deasupra codului, selectați Foaie de lucru.
Acum, lângă meniul derulant al foii de lucru, vedeți un alt meniu derulant. Conține o mulțime de gestionare de evenimente. Deocamdată, selectați „modificați”.
Acum copiați aici codul de mai sus.
Și s-a făcut. Reveniți la foaia dvs. și verificați-o.
Explicatie cod:
- Codul este scris pe foaia 1 făcând dublu clic pe el. Înseamnă că codul dvs. aparține doar acestei foi.
- Am folosit gestionarul de evenimente „Change” din „Foaia de lucru” pentru a declanșa codul nostru VBA.
-
Foaie de lucru sub privat_Change (țintă ByVal ca interval)
Acesta este numele subrutinei fix și implicit al unui manipulator de evenimente de schimbare.
- Vrem ca codul nostru să ruleze, schimbarea se face numai în coloana A.
-
Dacă nu se intersectează (țintă, interval ("A: A")) nu este nimic atunci
Această linie verifică dacă celula modificată este sau nu în coloana A.
- Acum, dacă linia de mai sus returnează True, atunci aceste linii sunt executate
On Error Resume Next If Target.Value = "" ThenTarget.Offset (0, 1) = "" ElseTarget.Offset (0, 1) .Value = Format (Acum, "mm / dd / aaaa HH: mm: ss")
Prima linie ignoră eroarea pop și rulează aceste două linii. Dacă omiteți On Eroare Reluare Următor veți vedea erori care apar atunci când ștergeți o valoare din coloana A.
Dacă Target.Value = "" Atunci
: - Această linie verifică dacă o celulă din coloana A este goală. Dacă da, atunci
Target.Offset (0, 1) = ""
: - Această linie șterge valoarea celulei adiacente.
Și dacă False
Else Target.Offset (0, 1) .Value = Format (Acum, "mm / zz / aaaa HH: mm: ss")
: - Această linie introduce ora și data curente în vecinătatea coloanei A.
- Și ultimele trei linii doar își închid blocul respectiv. Și s-a făcut. Acum aveți o foaie care oferă un timp exact de schimbare efectuat într-o celulă a coloanei A.
Este posibil să fi observat că există mai multe gestionare de evenimente în lista derulantă. Joacă în jurul lor. Încercați să aflați ce funcționează fiecare gestionar de evenimente. Și dacă aveți dificultăți, scrieți-l în secțiunea de comentarii.
Introduceți Data Time Time cu VBA