Sett inn dato tidsstempel med VBA

Innholdsfortegnelse

Å sette inn dato i Excel ved hjelp av VBA er like enkelt som å skrive en formel i en celle.

VBA -tidsstempelkoden er:

Område ("A1"). Verdi = Format (nå, "mm/dd/åååå HH: mm: ss")

Denne koden viser gjeldende dato og klokkeslett i celle A1. Og ja, det er det. det er gjort.

"Nå" -funksjonen returnerer gjeldende dato og klokkeslett, og "Format" -funksjonen formaterer utgangen til "mm/dd/åååå HH: mm: ss" -format.

Vis dato og klokkeslett når en endring gjøres ved hjelp av VBA.

La oss si at du har forberedt et ark. I dette arket vil du at tiden skal vises i kolonne B når noen gjør en oppføring Kolonne A.

Nå trenger vi en VBA -tidsstempelkode som kjøres hver gang når det gjøres endringer i kolonne A.

Koden nedenfor får arbeidet gjort enkelt.

Kjør makro når det gjøres en endring (hendelsesbehandler for regnearkendring)

Private Sub Worksheet_Change (ByVal Target As Range) If Not Intersect (Target, Range ("A: A")) Is Nothing ThenOn Error Resume Next If Target.Value = "" ThenTarget.Offset (0, 1) = "" Else Target .Offset (0, 1) .Value = Format (nå, "mm/dd/åååå HH: mm: ss") End If End If End Sub 

For å kjøre denne koden, åpne VBA og dobbeltklikk på arket i prosjektvinduet som du vil vise tidsstempel på.

Nå må vi bruke VBA hendelsesbehandler siden vi ønsker å kjøre koden vår til å kjøre hver gang en endring gjøres.

Velg Regneark fra rullegardinlisten over koden.

Nå ved siden av rullegardinlisten for regnearket, ser du en annen nedtrekksmeny. Den inneholder mange hendelsesbehandlere. For øyeblikket, velg "endre".

Kopier nå koden ovenfor her.

Og det er gjort. Gå tilbake til arket ditt og sjekk det.

Kode Forklaring:

    • Koden skrives på ark1 ved å dobbeltklikke på den. Det betyr at koden din bare tilhører dette arket.
    • Vi brukte "Endre" hendelsesbehandler av "Regneark" for å utløse vår VBA -kode.
    • Private Sub Worksheet_Change (ByVal Target As Range)

      Dette er det faste og standard underprogrammets navn på en endringshendelsesbehandler.

    • Vi vil at koden vår skal kjøre endring gjøres bare i kolonne A.
    • If Not Intersect (Target, Range ("A: A")) er ingenting da

      Denne linjen sjekker om den endrede cellen er i kolonne A eller ikke.

    • Hvis linjen ovenfor returnerer True, blir disse linjene utført
Ved feil Gjenoppta neste hvis Target.Value = "" ThenTarget.Offset (0, 1) = "" ElseTarget.Offset (0, 1) .Value = Format (nå, "mm/dd/åååå HH: mm: ss")

Den første linjen ignorerer feilpop og kjører disse to linjene. Hvis du utelater On Feil Fortsett neste du vil se feil dukker opp når du sletter en verdi i kolonne A.

Hvis Target.Value = "" Da

:- Denne linjen sjekker om en celle i kolonne A er tom. Hvis ja da

Target.Offset (0, 1) = ""

:- Denne linjen sletter tilstøtende celleverdi.

Og hvis det er usant

 Else Target.Offset (0, 1) .Value = Format (nå, "mm/dd/åååå HH: mm: ss")

:- Denne linjen angir gjeldende klokkeslett og dato i tilknytning til A-kolonne.

  • Og de tre siste linjene lukker bare sin respektive blokk. Og det er gjort. Nå har du et ark som gir en nøyaktig endringstid i en celle i kolonne A.

Du har kanskje lagt merke til at det er flere hendelsesbehandlere i rullegardinlisten. Lek rundt dem. Prøv å finne ut hva hver hendelsesbehandler jobber med. Og hvis du har problemer, skriv det ned i kommentarfeltet.

Sett inn dato tidsstempel med VBA

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave