Lisää päivämäärä- ja aikaleima VBA: lla

Anonim

Päivämäärän ja ajan lisääminen Exceliin VBA: n avulla on yhtä helppoa kuin kaavan kirjoittaminen soluun.

VBA -aikaleiman koodi on:

Alue (“A1”) = Muoto (Nyt "kk/pp/vvvv HH: mm: ss")

Tämä koodi näyttää nykyisen päivämäärän ja kellonajan solussa A1. Ja kyllä, se on siinä. se on tehty.

"Now" -toiminto palauttaa nykyisen päivämäärän ja kellonajan, ja "Format" -toiminto muotoilee tulosteen muodossa "kk/pp/vvvv HH: mm: ss".

Näytä päivämäärä ja kellonaika aina, kun muutos tehdään VBA: n avulla.

Oletetaan, että olet valmistanut taulukon. Tässä taulukossa haluat, että aika näkyy sarakkeessa B aina, kun joku tekee merkinnän sarakkeessa A.

Nyt tarvitsemme VBA -aikaleimakoodin, joka suoritetaan joka kerta, kun sarakkeessa A tehdään muutoksia.

Alla oleva koodi tekee työn helposti.

Suorita makro, kun muutos on tehty (laskentataulukon muutostapahtumien käsittelijä)

Yksityinen alityökirjan_muutos (ByVal -kohde alueena), jos se ei leikkaa (kohde, alue ("A: A")) ei ole mitään sitten .Offset (0, 1) .Arvo = Muoto (Nyt, "mm/dd/yyyy HH: mm: ss") End If End End Jos End Sub 

Jos haluat suorittaa tämän koodin, avaa VBA ja kaksoisnapsauta sitä projektiikkunan arkkia, jolle haluat näyttää aikaleiman.

Nyt meidän on käytettävä VBA -tapahtumakäsittelijää, koska haluamme suorittaa koodimme joka kerta, kun muutos tehdään.

Valitse koodisi yläpuolella olevasta avattavasta valikosta Työarkki.

Nyt laskentataulukon pudotusvalikon vieressä näet toisen pudotusvalikon. Se sisältää paljon tapahtumakäsittelijöitä. Valitse toistaiseksi "muuta".

Kopioi nyt yllä oleva koodi tähän.

Ja se on tehty. Palaa arkille ja tarkista se.

Koodin selitys:

    • Koodi kirjoitetaan taulukkoon 1 kaksoisnapsauttamalla sitä. Se tarkoittaa, että koodisi kuuluu vain tähän taulukkoon.
    • Käynnistimme "Työarkki" -tapahtuman "Muuta" tapahtumakäsittelijän käynnistämään VBA -koodimme.
    • Yksityinen alityöarkin_muutos (ByVal -kohde alueena)

      Tämä on muutostapahtumakäsittelijän kiinteä ja oletusaliohjelman nimi.

    • Haluamme koodin suorittavan muutoksen vain sarakkeessa A.
    • Jos ei leikkaa (kohde, alue ("A: A")) ei ole mitään sitten

      Tämä rivi tarkistaa, onko muutettu solu sarakkeessa A vai ei.

    • Jos edellä oleva rivi palauttaa arvon True, nämä rivit suoritetaan
Virheessä Jatka seuraavaksi, jos Target.Value = "" ThenTarget.Offset (0, 1) = "" ElseTarget.Offset (0, 1) .Arvo = Muoto (Nyt, "mm/pp/vvvv HH: mm: ss")

Ensimmäinen rivi jättää huomiotta virheilmoituksen ja suorittaa nämä kaksi riviä. Jos jätät On pois Virhe Jatka seuraavaksi näet virheilmoituksen, kun poistat arvon sarakkeesta A.

Jos Target.Value = "" Sitten

:- Tämä rivi tarkistaa, onko A-sarakkeen solu tyhjä. Jos kyllä ​​niin

Target.Offset (0, 1) = ""

:- Tämä rivi poistaa viereisen solun arvon.

Ja jos Väärä

 Else Target.Offset (0, 1) .Arvo = Muoto (Nyt "kk/pp/vvvv HH: mm: ss")

:- Tämä rivi syöttää nykyisen ajan ja päivämäärän A-sarakkeen viereen.

  • Ja kolme viimeistä riviä sulkevat vastaavan lohkonsa. Ja se on tehty. Nyt sinulla on taulukko, joka antaa tarkan muutosajan sarakkeen A soluun.

Olet ehkä huomannut, että avattavassa luettelossa on useita tapahtumakäsittelijöitä. Pelaa heidän ympärillään. Yritä selvittää, mitä kukin tapahtumakäsittelijä toimii. Ja jos sinulla on vaikeuksia, kirjoita se kommenttikenttään.

Lisää päivämäärä- ja aikaleima VBA: lla