Excel VBA -päivämäärä

Jotkut toiminnot ovat todella käteviä, ja tukahdutamme elämäämme ilman, että nämä toiminnot ovat VBA-käyttäjiä. PÄIVÄMÄÄRITTELY-toiminto on yksi niistä toiminnoista, jotka voivat olla toisinaan erittäin hyödyllisiä ja helpottaa ohjelmoijan elämää. Excel-laskentataulukossa on TODAY () -niminen toiminto, joka antaa nykyisen päivämäärän tuloksena järjestelmän päivämäärän perusteella. Samankaltaisilla riveillä VBA: lla on DATE-toiminto, joka antaa nykyisen päivämäärän järjestelmän päivämäärän perusteella.

VBA DATE -toiminto palauttaa tuloksena nykyisen päivämäärän järjestelmän päivämäärän perusteella ja sillä on todella yksinkertainen syntaksi.

Tällä toiminnolla ei ole mitään väitettä, joka toimitettaisiin. Toiminnon nimi ja tyhjät sulkut tulevat. Sulujen lisääminen ei ole pakollista myös tätä toimintoa kutsuttaessa. Eikö tämä toiminto ole luonteeltaan todella yksinkertainen?

DATE-funktion syntaksi VBA: ssa.

Kuinka käyttää Excel VBA Date -toimintoa?

Opimme käyttämään VBA Date -toimintoa muutamalla excel-esimerkillä.

Voit ladata tämän VBA Date Excel -mallin täältä - VBA Date Excel Template

VBA-päivämäärätoiminto - esimerkki # 1

Oletetaan, että halusit nähdä nykyisen päivämäärän MsgBoxissa. Kuinka voit tehdä sen? Noudata vain alla olevia vaiheita ja pääset läpi.

Vaihe 1: Aseta uusi moduuli Visual Basic Editoriin.

Vaihe 2: Määritä alamenettely kirjoittaaksesi ja tallentaa makro.

Koodi:

 Sub DateEx1 () End Sub 

Vaihe 3: Määritä muuttuja nimeltä CurrDate, joka voi pitää nykyisen päivämäärän arvoa. Koska aiomme määrittää päivämääräarvon muuttujalle, varmista, että määrität sen päivämääräksi.

Koodi:

 Sub DateEx1 () Dim CurrDate Päivämäärän päättymispäivänä Sub 

Vaihe 4: Määritä nykyisen järjestelmäpäivän arvo äskettäin luodulle muuttujalle määritysoperaattorilla. Sinun tarvitsee vain lisätä DATE päivämäärän arvon määrittämiseksi. Käytä seuraavaa koodinumeroa:

Koodi:

 Sub DateEx1 () Dim CurrDate Kuten Date CurrDate = Päivämäärä End Sub 

Vaihe 5: Käytä MsgBoxia nähdäksesi nykyisen järjestelmän päivämäärän Viestiruutu-kehotteen alla. Käytä alla olevaa koodiriviä:

Koodi:

 Sub DateEx1 () Dim CurrDate As Date CurrDate = Date MsgBox "Päivän päivämäärä on:" & CurrDate End Sub 

Vaihe 6: Paina F5 tai suorita painike manuaalisesti tämän koodin suorittamiseksi. Näet viestiruudun, kuten alla olevassa kuvakaappauksessa näytetään, ja nykyinen päivämäärä.

Huomaa, että kuvakaappauksessa tässä näkyvä päivämäärä on päivämäärä, jona olen suorittanut tämän komentosarjan. Saatat saada toisen päivämäärän koodin suorittamishetkellä järjestelmän päivämäärän perusteella.

Tämä on yksinkertaisin esimerkki nykyisen päivämäärän saamisesta. Voit käyttää myös Cells.Value-toimintoa saadaksesi päivämääräarvon tietyssä Excel-taulukon solussa.

VBA-päivämäärätoiminto - esimerkki 2

Asuntolainan EMI-maksun eräpäivä

Oletetaan, että minulla on laskentataulukko ja tarvitsen järjestelmän, joka näyttää minulle viestin “ Hei! Sinun on maksettava EMI tänään. Joka kerta, kun avaan arkin ja solun A1 arvo on nykyinen järjestelmän päivämäärä. Katsotaan askel askeleelta, kuinka voimme tehdä sen.

Vaihe 1: Aseta uusi moduuli ja määritä uusi aliproseduuri nimeltä auto_open () makron luomiseksi. auto_open () sallii makron suorittamisen automaattisesti aina, kun avaat laskentataulukon.

Koodi:

 Sub auto_open () Lopeta alaosa 

Vaihe 2: Käytä If-ehtoa määrittääksesi nykyisen päivämäärän arvon HomeLoan_EMI-taulukon soluun A1.

Koodi:

 Sub auto_open () Jos taulukot ("HomeLoan_EMI"). Alue ("A1"). Arvo = Päivämäärä Loppu Sub 

Vaihe 3: Käytä nyt sitten samalla rivillä IF: n jälkeen, jotta voimme lisätä lauseen, joka suoritetaan niin kauan kuin if-ehto on totta.

Koodi:

 Sub auto_open () Jos taulukot ("HomeLoan_EMI"). Alue ("A1"). Arvo = Päivämäärä sitten Loppu Sub 

Vaihe 4: Lisää toteutuvaan lauseeseen totta.

Koodi:

 Sub auto_open () Jos taulukot ("HomeLoan_EMI"). Alue ("A1"). Arvo = Päivämäärä sitten MsgBox ("Hei! Sinun on maksettava EMIsi tänään.") Lopeta alaosa 

Tämä lausunto aukeaa viestiruudun alla heti, jos ehto on totta.

Vaihe 5: Kuten tiedämme, jokainen IF-ehto tarvitsi aina muun tilan. Lisää Else ehto tähän silmukkaan.

Koodi:

 Sub auto_open () Jos taulukot ("HomeLoan_EMI"). Alue ("A1"). Arvo = Päivämäärä sitten MsgBox ("Hei! Sinun on maksettava EMI tänään.") Else Exit Sub End Sub 

Tämä muu ehto lopettaa makron automaattisen avaamisen, jos soluissa A1 oleva päivämäärä ei ole nykyinen järjestelmän päivämäärä.

Vaihe 6: Lopeta lopuksi IF-silmukka lauseella End IF.

Koodi:

 Sub auto_open () Jos taulukot ("HomeLoan_EMI"). Alue ("A1"). Arvo = Päivämäärä sitten MsgBox ("Hei! Sinun on maksettava EMI tänään.") Else Exit Sub End Jos End Sub 

Vaihe 7: Näin on, nyt joka kerta, kun avaat laskentataulukon, järjestelmä ajaa yllä olevan koodin automaattisesti ja tarkistaa, onko solun A1 päivämääräarvo EMI: n eräpäivä. Jos EMI: n eräpäivä on sama kuin järjestelmän päivämäärä, se näyttää seuraavan viestin:

VBA-päivämäärätoiminto - esimerkki 3

VBA-päivämäärä selvittääksesi luottokorttilaskunsaajan

Oletetaan, että minulla on luettelo asiakkaista, joilla on luottokortti ja haluat tietää, kenellä on maksaa tänään. Joten voit soittaa heille ja pyytää heitä maksamaan erääntyneet maksut välittömästi EOD: lla.

VBA-päivämäärä voi olla kätevä antaa sinun automatisoida asiat sen sijaan, että tarkistat päivämääriä yksi kerrallaan. Katsotaan kuinka tämä tehdään askel askeleelta:

Vaihe 1: Määritä uusi makro alaproseduurilla moduulin alla.

Koodi:

 Sub DateEx3 () loppu Sub 

Vaihe 2: Määritä kaksi uutta muuttujaa, joista toinen on hyödyllinen koodin siirtämisessä ja toinen nykyisen järjestelmäpäivämäärän arvon pitämiseksi.

Koodi:

 Sub DateEx3 () Dim DateDue Kuten päivämäärä Dim i As Long DateDue = Päivämäärä i = 2 End Sub 

Vaihe 3: Käytä nyt seuraavaa koodinumeroa, joka auttaa etsimään nykyiseltä järjestelmäpäivältä henkilöä, jolla on luottokorttilaskun eräpäivä. Tämän koodin avulla voidaan tarkistaa asiakas, jonka lasku on erääntynyt nykyisen järjestelmän päivämääränä, laskun summan kanssa.

Koodi:

 Sub DateEx3 () Dim DateDue Kuten päivämäärä Dim i Kuten pitkä DateDue = Päivämäärä i = 2 I = 2 taulukkoon ("CC_Bill"). Solut (Rows.Count, 1) .End (xlUp) .Row Jos DateDue = DateSerial ( Vuosi (päivämääräpäivä), kuukausi (taulukot ("CC_Bill"). Solut (i, 3). Arvo), päivä (taulukot ("CC_Bill"). Solut (i, 3). Arvo)) Sitten MsgBox "Asiakkaan nimi:" & Sheets ("CC_Bill"). Solut (i, 1) .Arvo & vbNewLine & "Premium Summa:" & Sheets ("CC_Bill"). Solut (i, 2) .Value End Jos Next i End Sub 

Vaihe 4: Suorita tämä koodi napsauttamalla F5 tai Suorita-painiketta manuaalisesti ja katso lähtö.

Ensimmäisessä iteraatiossa voimme nähdä, että Mohanilla on 12 900 vekselin erääntymispäivä 29. huhtikuuta 2019 (tämänhetkinen järjestelmän päivämäärä, jona tämä koodi suoritetaan). Jos osumme OK, näemme seuraavan asiakkaan nimen, jolla lasku erääntyy 29. huhtikuuta 2019 (seuraava on Rajani).

Tämä koodi on todella kätevä, kun sinulla on miljoonia rivejä asiakkaita, joiden lasku erääntyy yhtenä päivänä. Huomaa, että kaikki tässä artikkelissa mainitut skriptit ajetaan 29. huhtikuuta 2019. Saatat saada eri päivämääräarvon, kun suoritat näitä näytekoodeja järjestelmän päivämäärän perusteella.

Muistettavat asiat

  • VBA PÄIVÄMÄÄRÄ-funktio palauttaa nykyisen järjestelmäpäivämäärän ja samanaikaisesti Excelin TÄNÄÄN () -toiminnon kanssa.
  • VBA PÄIVÄMÄÄRÄ -toiminnolla ei ole yhtään argumenttia, joka tulisi välittää Excelissä. Ei tarvitse edes sulkeita kutsua, kun tätä toimintoa käytetään koodissa.
  • VBA DATE on haihtumaton funktio excelissä.
  • VBA tallentaa päivämääräarvot DATE suorittamishetkellä. Joten, ei määrittele muuttuvaa hallussapitoarvoa merkkijonona / kokonaislukuna. Se aiheuttaa virheen koodin suorittamisen aikana.

Suositellut artikkelit

Tämä on opas Excel VBA Date -ohjelmaan. Täällä olemme keskustelleet siitä, miten Excel VBA -päivämäärätoimintoja käytetään käytännön esimerkien ja ladattavan Excel-mallin kanssa. Voit myös käydä läpi muiden ehdottamiemme artikkeleidemme -

  1. Mikä on VBA-päivämäärämuoto?
  2. Excel-lisäyspäivämäärä | Excel-opetusohjelma
  3. VBA GoTo | Kuinka käyttää?
  4. EDATE Excel-toiminto (kaava, esimerkki)
  5. Mikä on VBA DateSerial?

Luokka: