Tento tutoriál vám ukáže, ako formátovať dátumy pomocou jazyka VBA.
Formátujte dátumy vo VBA
Existujú dva spôsoby formátovania dátumov pomocou jazyka VBA.
- Vlastnosť NumberFormat buniek / rozsahov - na formátovanie dátumov uložených v bunkách
- Funkcia Formát VBA - Na formátovanie dátumov vo VBA (napr. Premenné)
NumberFormat - dátumy
Predvolený formát čísla bunky v programe Excel je všeobecný. Zmenou formátu čísla môžete zobraziť hodnoty ako čísla, text, dátumy, percentá alebo meny. Vlastnosť NumberFormat možno vo VBA použiť na nastavenie formátu čísla dátumov v bunke alebo rozsahu.
Poznámka: Ak chcete zobraziť rôzne štandardné formáty dátumu dostupné v programe Excel, prejdite na položku Domov> Číslo a zobrazia sa možnosti, ako napríklad krátky dátum, dlhý dátum a čas.
Krátky dátum
Možnosť formátovania krátkeho dátumu zobrazuje dátum v krátkom číselnom formáte.
Nasledujúci kód nastaví vlastnosť .NumberFormat bunky A1 na Krátky dátum:
1 | Rozsah ("A1"). NumberFormat = "mm/dd/rrrr" |
Dlhé rande
Dlhé formátovanie čísla dátumu zobrazuje dátum v dlhšom, písomnom formáte. Nasledujúci kód nastaví vlastnosť .NumberFormat bunky A1 na Dlhý dátum:
1 | Rozsah ("A1"). NumberFormat = "dddd, mmmm dd, rrrr" |
Vlastné dátumy
Ak chcete zobraziť kódy vlastného formátu čísla, ktoré môžete vo VBA použiť na formátovanie dátumov, prejdite na položku Domov> Číslo a kliknite na spúšťač dialógového okna. Vyberte kartu Číslo a zvoľte položku Vlastné.
Môžete si vybrať buď vlastné vstavané formáty dátumu, alebo vytvoriť vlastné užívateľom definované formáty dátumu. Nasledujúci kód nastaví vlastnosť .NumberFormat bunky A1 na vstavaný vlastný formát dátumu:
1 | Rozsah ("A1"). NumberFormat = "mmm-rr" |
Výsledkom je:
Nasledujúci kód nastaví vlastnosť .NumberFormat bunky A1 na užívateľom definovaný vlastný formát dátumu:
1 | Rozsah ("A1"). NumberFormat = "dddd-dd-mmm-yy" |
Výsledkom je:
Po prečítaní si vopred pripravených príkladov programu Excel sa môžete dozvedieť, ako by ste mali zadávať NumberFormats. Ak chcete získať ďalšie informácie, prečítajte si dokumentáciu spoločnosti Microsoft o formátoch čísel pre dátumy.
Funkcia formátovania VBA
Ako je uvedené vyššie, metóda NumberFormat je vhodná na nastavenie formátovania čísel dátumov uložených v bunkách programu Excel. Vo VBA môžete použiť funkciu formátovania na konverziu dátumov na reťazce s určitým formátovaním dátumu.
Na formátovanie dátumov by ste použili nasledujúcu syntax:
Formát (String_Representation, NumberFormatCode) kde:
String_Representation - textový reťazec predstavujúci dátum.
NumberFormatCode - kód formátu čísla určujúci spôsob, akým by sa mal dátum zobrazovať.
Nasledujúci kód ukazuje, ako formátovať reprezentáciu textového reťazca dátumu ako dlhý formát dátumu:
1 | Formát MsgBox („1/1/2010“, „dddd, mmmm dd, rrrr“) |
Výsledkom je:
Všimnite si toho, že funkcia formátovania používa rovnakú syntax formátovania dátumu ako vyššie uvedený NumberFormat.
Nasledujúci kód ukazuje, ako formátovať reprezentáciu textového reťazca dátumu ako stredný formát dátumu:
1 | Formát MsgBox („09. október 2012“, „Stredný dátum“) |
Výsledkom je:
Nasledujúci kód ukazuje, ako formátovať reprezentáciu textového reťazca dátumu ako formát definovaný používateľom:
1 | Formát MsgBox („09. október 2012“, „dddd: dd/mm/rr“) |
VBA Custom Format Builder
Náš doplnok VBA: AutoMacro obsahuje nástroj na tvorbu vlastných formátov pre editor VBA. To vám umožní nastaviť vlastné formáty a okamžite zobraziť ukážku výstupu pre požadovanú hodnotu:
Doplnok VBA obsahuje mnoho ďalších „generátorov kódu“, rozsiahlu knižnicu kódov a sortiment ďalších kódovacích nástrojov. Je to konečný doplnok pre každého, kto má vážny záujem o programovanie VBA!
Formát VBA Dátum v programe Access
Funkcia dátumu dátumu VBA funguje v programe Access VBA úplne rovnako ako v programe Excel VBA.
12345678910 | Funkcia GetDateFilter () ako reťazec'Vytvorte reťazec na získanie informácií z 2 dátumových polí vo formulári v programe AccessDim strDateField ako reťazecIf IsNull (Me.txtSDate) = False ThenIf IsNull (Me.txtEDate) = True Then Me.txtEDate = Me.txtSDateAk strDateField2 = "" PotomGetDateFilter = strDateField & "Between #" & Format (Me.txtSDate, "mm/dd/yyyy") & " # And #" & Format (Me.txtEDate, "mm/dd/yyyy") & " #"Koniec AkKoniec AkKoncová funkcia |