Įdėkite datos ir laiko antspaudą su VBA

Turinys

Įterpti datos laiką „Excel“ naudojant VBA yra taip paprasta, kaip parašyti formulę langelyje.

VBA laiko žymos kodas yra:

Diapazonas („A1“) = Formatas (dabar „mm/dd/yyyy HH: mm: ss“)

Šis kodas langelyje A1 parodys dabartinę datą ir laiką. Ir taip, tai yra. padaryta.

Funkcija „Dabar“ grąžina dabartinę datą ir laiką, o funkcija „Formatas“ formato išvestį į „mm/dd/yyyy HH: mm: ss“ formatą.

Rodykite datą ir laiką, kai pakeitimai atliekami naudojant VBA.

Tarkime, kad paruošėte lapą. Šiame lape norite, kad laikas būtų rodomas B stulpelyje, kai kas nors įveda A stulpelį.

Dabar mums reikia VBA laiko žymos kodo, kuris paleidžiamas kiekvieną kartą, kai keičiamas A stulpelis.

Žemiau pateiktas kodas leidžia lengvai atlikti darbą.

Vykdyti makrokomandą, kai atliekamas pakeitimas (darbalapio keitimo įvykių tvarkyklė)

Privatus antrinis darbalapio keitimas („ByVal Target as Range“), jei nesikerta (Tikslas, diapazonas („A: A“)) Ar tai nieko tada .Offset (0, 1) .Value = Formatas (Dabar, "mm/dd/yyyy HH: mm: ss") Pabaiga, jei pabaiga, jei pabaiga 

Norėdami paleisti šį kodą, atidarykite VBA ir dukart spustelėkite projekto lango lapą, kuriame norite rodyti laiko žymę.

Dabar turime naudoti VBA įvykių tvarkytoją, nes norime paleisti savo kodą, kad jis būtų paleistas kiekvieną kartą, kai atliekamas pakeitimas.

Išskleidžiamajame meniu virš savo kodo pasirinkite Darbo lapas.

Dabar šalia darbalapio išskleidžiamojo meniu matote kitą išskleidžiamąjį meniu. Jame yra daug renginių tvarkytojų. Šiuo metu pasirinkite „keisti“.

Dabar nukopijuokite aukščiau esantį kodą čia.

Ir tai daroma. Grįžkite prie savo lapo ir patikrinkite.

Kodo paaiškinimas:

    • Kodas užrašomas 1 lape dukart spustelėjus jį. Tai reiškia, kad jūsų kodas priklauso tik šiam lapui.
    • Norėdami suaktyvinti mūsų VBA kodą, naudojome „Pakeisti“ įvykių tvarkytoją „Darbo lapas“.
    • Privatus antrinis darbalapio keitimas („ByVal Target“ kaip diapazonas)

      Tai yra fiksuotas ir numatytasis pakeitimų įvykių tvarkyklės paprogramės pavadinimas.

    • Mes norime, kad mūsų kodas būtų pakeistas tik A stulpelyje.
    • Jei nesikerta (taikinys, diapazonas („A: A“)), tada nieko nėra

      Ši eilutė patikrina, ar pakeistas langelis yra A stulpelyje, ar ne.

    • Dabar, jei aukščiau pateikta eilutė grąžina „True“, šios eilutės vykdomos
On Error Resume Next If Target.Value = "" ThenTarget.Offset (0, 1) = "" ElseTarget.Offset (0, 1) .Value = Formatas (Dabar, "mm/dd/yyyy HH: mm: ss")

Pirmoje eilutėje nepaisoma klaidos pop ir paleidžiamos šios dvi eilutės. Jei praleisite On Klaida Tęsti toliau pamatysite klaidą pasirodžius, kai ištrinsite reikšmę A stulpelyje.

Jei Target.Value = "" Tada

:- Ši eilutė patikrina, ar A stulpelio langelis tuščias. Jei taip, tada

Target.Offset (0, 1) = ""

:- Ši eilutė ištrina gretimų langelių reikšmes.

Ir jei melas

 Else Target.Offset (0, 1). Vertė = formatas (Dabar, "mm/dd/yyyy HH: mm: ss")

:- Šioje eilutėje šalia stulpelio A įvedamas dabartinis laikas ir data.

  • Ir paskutinės trys eilutės tiesiog uždaro atitinkamą bloką. Ir padaryta. Dabar turite lapą, kuriame nurodomas tikslus A stulpelio langelio pakeitimo laikas.

Galbūt pastebėjote, kad išskleidžiamajame sąraše yra keletas įvykių tvarkytojų. Žaisk aplink juos. Pabandykite išsiaiškinti, ką veikia kiekvienas įvykių tvarkytojas. Ir jei turite kokių nors sunkumų, parašykite tai komentarų skiltyje.

Įdėkite datos ir laiko antspaudą su VBA

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave