Excel VBA-dato

Det er noen funksjoner som er veldig nyttige, og vi kveler livet uten at disse funksjonene er VBA-brukere. DATE-funksjonen er en av disse funksjonene som til tider kan være veldig nyttige og kan gjøre livet enklere for en programmerer. I et Excel-regneark er det en funksjon som heter TODAY () som gir gjeldende dato som et resultat basert på systemdatoen. På lignende linjer har VBA DATE-funksjon som gir gjeldende dato basert på systemdatoen.

VBA DATE-funksjonen returnerer gjeldende dato basert på systemdato som et resultat og har egentlig veldig enkel syntaks.

Denne funksjonen har ikke noe argument som skal føres kommer med navnet på funksjonen og tomme parenteser. Det er ikke obligatorisk å legge til parentesene også når du kaller denne funksjonen. Er ikke denne funksjonen egentlig enkel?

Syntaks for DATE-funksjon i VBA.

Hvordan bruke Excel VBA-datofunksjon?

Vi lærer hvordan du bruker en VBA Date-funksjon med få eksempler i Excel.

Du kan laste ned denne VBA Date Excel-malen her - VBA Date Excel Template

VBA-datofunksjon - eksempel # 1

Anta at du ønsket å se gjeldende dato i MsgBox. Hvordan kan du gjøre det? Bare følg trinnene nedenfor, så kommer du gjennom.

Trinn 1: Sett inn en ny modul i Visual Basic Editor.

Trinn 2: Definer en delprosedyre for å skrive opprette og lagre en makro.

Kode:

 Sub DateEx1 () Slutt Sub 

Trinn 3: Definer en variabel som heter CurrDate som kan inneholde verdien på gjeldende dato. Siden vi er i ferd med å tilordne en datoverdi til variabelen, sørg for at du definerer den som en dato.

Kode:

 Sub DateEx1 () Dim CurrDate As Date End Sub 

Trinn 4: Ved å bruke tildelingsoperatøren, tilordne en verdi av gjeldende systemdato til variabelen som ny er opprettet. Du trenger bare å legge til DATE for å tilordne datoverdien. Bruk følgende kode:

Kode:

 Sub DateEx1 () Dim CurrDate As Date CurrDate = Dato slutt Sub 

Trinn 5: Bruk MsgBox for å kunne se gjeldende systemdato under meldingsboks-ledeteksten. Bruk kodelinjen gitt nedenfor:

Kode:

 Sub DateEx1 () Dim CurrDate As Date CurrDate = Date MsgBox "Dagens dato er:" & CurrDate End Sub 

Trinn 6: Trykk F5 eller run-knappen manuelt for å kjøre denne koden. Du vil kunne se en meldingsboks som vist i skjermbildet nedenfor med gjeldende dato.

Merk at datoen som vises her på skjermdumpen er datoen jeg har kjørt dette skriptet på. Det kan hende du får en annen dato når du kjører denne koden, basert på systemdatoen.

Dette er det enkleste eksemplet på å få dagens dato. Du kan også bruke Cells.Value-funksjonen for å få datoverdien i en bestemt celle på excelarket.

VBA-datofunksjon - eksempel # 2

Hjemme lån EMI betaling forfallsdato

Anta at jeg har et arbeidsark og jeg trenger et system for å vise meg en melding “ Hei! Du må betale EMI i dag. ”Hver gang jeg åpner arket mitt, og verdien i celle A1 er gjeldende systemdato. La oss se trinnvis hvordan vi kan gjøre det.

Trinn 1: Sett inn en ny modul og definer en ny delprosedyre som heter auto_open () for å lage en makro. auto_open () lar makroen din kjøres automatisk hver gang du åpner regnearket.

Kode:

 Sub auto_open () Slutt Sub 

Trinn 2: Bruk If-betingelse for å tilordne verdien til gjeldende dato i celle A1 i arbeidsarket HomeLoan_EMI.

Kode:

 Sub auto_open () If Sheets ("HomeLoan_EMI"). Range ("A1"). Verdi = Date End Sub 

Trinn 3: Nå, bruk deretter På den samme linjen etter IF, slik at vi kan legge til en uttalelse som vil kjøres så lenge hvis -tilstanden er sann.

Kode:

 Sub auto_open () If Sheets ("HomeLoan_EMI"). Range ("A1"). Verdi = Dato, deretter Slutt Sub 

Trinn 4: Legg til en uttalelse som skal utføres for tilstanden som er sann.

Kode:

 Sub auto_open () If Sheets ("HomeLoan_EMI"). Range ("A1"). Value = Date Then MsgBox ("Hei! Du må betale EMI i dag.") End Sub 

Denne uttalelsen vises under meldingsboksen så snart en betingelse er sann.

Trinn 5: Som kjent trengte enhver IF-tilstand alltid en annen tilstand. Legg til en annen betingelse i denne loopen.

Kode:

 Sub auto_open () If Sheets ("HomeLoan_EMI"). Range ("A1"). Value = Date Then MsgBox ("Hei! Du må betale EMI i dag.") Ellers Exit Sub End Sub 

Denne andre tilstanden vil avslutte den automatiske åpningen av makro hvis en dato i celle A1 ikke er den gjeldende systemdatoen.

Trinn 6: Til slutt, Avslutt IF-loopen ved å bruke setningen End IF.

Kode:

 Sub auto_open () If Sheets ("HomeLoan_EMI"). Range ("A1"). Value = Date Then MsgBox ("Hei! Du må betale EMI i dag.") Ellers Exit Sub End If End Sub 

Trinn 7: Dette er det, nå hver gang du åpner regnearket, vil systemet automatisk kjøre koden ovenfor og se om datoverdien i celle A1 er EMI-forfallsdato eller ikke. Hvis EMI-forfallsdato tilsvarer systemdatoen, vil den vise meldingen som nedenfor:

VBA-datofunksjon - eksempel # 3

VBA-dato for å finne ut betalingsmottaker for kredittkort

Anta at jeg har en liste over kunder som har et kredittkort, og du vil vite hvem som har forfall i dag. Slik at du kan ringe dem og be dem om å betale forfall umiddelbart av EOD.

VBA Date kan være nyttig når du lar deg automatisere tingene i stedet for å sjekke datoene en etter en. La oss se hvordan du gjør dette trinn for trinn:

Trinn 1: Definer en ny makro ved hjelp av en delprosedyre under en modul.

Kode:

 Sub DateEx3 () Slutt Sub 

Trinn 2: Definer to nye variabler hvorav den ene vil være nyttig når du skal løfte koden opp og en annen for å holde verdien på gjeldende systemdato.

Kode:

 Sub DateEx3 () Dim DateDue Som Date Dim i As Long DateDue = Date i = 2 End Sub 

Trinn 3: Bruk nå følgende stykke kode som hjelper deg med å søke på personen som har forfallsdato for kredittkortregning som gjeldende systemdato. Denne koden gjør det mulig å sjekke kunden som har fakturobetaling på gjeldende systemdato sammen med fakturabeløpet.

Kode:

 Sub DateEx3 () Dim DateDue Som Date Dim i As Long DateDue = Date i = 2 For i = 2 To Sheets ("CC_Bill"). Celler (Rader.Count, 1) .End (xlUp) .Row If DateDue = DateSerial ( År (dato), måned (ark ("CC_Bill"). Celler (i, 3). Verdi), dag (ark ("CC_Bill"). Celler (i, 3). Verdi)) Så MsgBox "Kundenavn:" & Ark ("CC_Bill"). Celler (i, 1). Verdi & vbNewLine og "premium beløp:" & ark ("CC_Bill"). Celler (i, 2). Verdi slutt hvis neste i slutt sub 

Trinn 4: Kjør denne koden ved å trykke på F5 eller Run-knappen manuelt og se utdataene.

På den første iterasjonen kan vi se at Mohan er den som har en regning på 12 900 forfalt 29. april-2019 (nåværende systemdato som denne koden kjøres på). Hvis vi treffer OK, kan vi se neste kundenavn som har en regning som skal betales 29. april-2019 (Rajani er den neste).

Denne koden vil virkelig være nyttig når du har millioner av rader med kunder som har regningen forfaller på en bestemt dag. Vær oppmerksom på at alle skriptene som er nevnt i denne artikkelen, kjøres 29. april-2019. Du kan få en annen datoverdi når du kjører denne eksempelskodene basert på systemdatoen.

Ting å huske

  • VBA DATE-funksjonen returnerer gjeldende systemdato og som parallell til Excels TODAY () -funksjon.
  • VBA DATE-funksjonen har ikke noe argument som skal sendes i Excel. Trenger ikke en gang parentesene skal ringes mens jeg bruker denne funksjonen i koden.
  • VBA DATE er en ikke-flyktig funksjon i Excel.
  • VBA lagrer Datoverdier som DATE på utførelsestidspunktet. Så definerer ikke en variabel holdingsverdi som et streng / heltall. Det vil forårsake en feil under utførelsen av koden.

Anbefalte artikler

Dette har vært en guide til Excel VBA Date. Her har vi diskutert hvordan du bruker Excel VBA Date Functions sammen med praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. Hva er VBA-datoformat?
  2. Innsettingsdato for Excel | Excel-opplæring
  3. VBA GoTo | Hvordan å bruke?
  4. EDATE Excel-funksjon (formel, eksempel)
  5. Hva er VBA DateSerial?

Kategori: