Dato i VBA -format

Denne vejledning viser, hvordan du formaterer datoer ved hjælp af VBA.

Formatdatoer i VBA

Der er to metoder til at formatere datoer ved hjælp af VBA.

  1. Egenskaben NumberFormat for celler / intervaller - For at formatere datoer, der er gemt i celler
  2. Funktionen VBA -format - For at formatere datoer i VBA (eks. Variabler)

NumberFormat - Datoer

Standardnummerformatet for en celle i Excel er Generelt. Du kan vise værdier som tal, tekst, datoer, procenter eller valutaer ved at ændre talformatet. Egenskaben NumberFormat kan bruges i VBA til at angive talformatet for datoer i en celle eller et område.

Bemærk: For at se de forskellige standarddatoformater, der er tilgængelige i Excel, skal du gå til Hjem> Nummer, og du vil se muligheder som for eksempel kort dato, lang dato og tid.


Kort dato

Muligheden for formatering af kort dato viser datoen i et kort, numerisk format.

Følgende kode sætter .NumberFormat -egenskaben i celle A1 til Kort dato:

1 Område ("A1"). NumberFormat = "mm/dd/åååå"

Lang dato

Lang datoenummerformatering viser datoen i et længere, skriftligt format. Følgende kode sætter .NumberFormat -egenskaben i celle A1 til Lang dato:

1 Område ("A1"). NumberFormat = "dddd, mmmm dd, åååå"

Tilpassede datoer

For at se de tilpassede talformatkoder, som du kan bruge i VBA til at formatere datoer, skal du gå til Hjem> Nummer og klikke på Dialog Box Launcher. Vælg fanen Nummer, og vælg Brugerdefineret.

Du kan enten vælge de tilpassede indbyggede formater til din dato eller oprette dine egne brugerdefinerede datoformater. Følgende kode indstiller egenskaben .NumberFormat i celle A1 til et indbygget tilpasset datoformat:

1 Område ("A1"). NumberFormat = "mmm-åå"

Resultatet er:

Følgende kode indstiller egenskaben .NumberFormat i celle A1 til et brugerdefineret tilpasset datoformat:

1 Område ("A1"). NumberFormat = "dddd-dd-mmm-åå"

Resultatet er:

Ved at gennemgå Excels forudbyggede eksempler kan du lære, hvordan NumberFormats skal indtastes. For mere information, læs Microsofts dokumentation om nummerformater for datoer.

VBA -formatfunktion

Som nævnt ovenfor er NumberFormat -metoden passende til at indstille nummerformatet for datoer gemt i Excel -celler. I VBA kan du bruge formateringsfunktionen til at konvertere datoer til strenge med bestemt datoformatering.

Du vil bruge følgende syntaks til at formatere datoer:

Format (String_Representation, NumberFormatCode) hvor:

String_Representation - tekststrengen, der repræsenterer datoen.

NumberFormatCode - nummerformatkoden, der angiver, hvordan datoen skal vises.

Følgende kode viser, hvordan du formaterer en tekststrengrepræsentation af en dato som et langt datoformat:

1 MsgBox -format ("1/1/2010", "dddd, mmmm dd, åååå")

Resultatet er:

Bemærk, at formateringsfunktionen bruger den samme datoformateringssyntaks som nummerformatet ovenfor.

Følgende kode viser, hvordan du formaterer en tekststrengrepræsentation af en dato som mellemdatoformat:

1 MsgBox -format ("09. oktober 2012", "Medium dato")

Resultatet er:

Følgende kode viser, hvordan du formaterer en tekststrengrepræsentation af en dato som et brugerdefineret format:

1 MsgBox -format ("09. oktober 2012", "dddd: dd/mm/åå")

VBA Custom Format Builder

Vores VBA-tilføjelse: AutoMacro indeholder en brugerdefineret formatbygger til VBA-editoren. Dette giver dig mulighed for at indstille brugerdefinerede formater og med det samme få vist output til den ønskede værdi:

VBA-tilføjelsen indeholder mange andre "Kodegeneratorer", et omfattende kodebibliotek og et sortiment af andre kodningsværktøjer. Det er den ultimative tilføjelse til alle, der er seriøse omkring VBA-programmering!

VBA -format Dato i adgang

Funktionen VBA Format Date fungerer nøjagtig det samme i Access VBA som i Excel VBA.

12345678910 Funktion GetDateFilter () som streng'opret en streng for at få oplysninger fra 2 datofelter på en formular i AccessDim strDateField som strengIf IsNull (Me.txtSDate) = False ThenIf IsNull (Me.txtEDate) = True Then Me.txtEDate = Me.txtSDateHvis strDateField2 = "" SåGetDateFilter = strDateField & "Between #" & Format (Me.txtSDate, "mm/dd/yyyy") & " # And #" & Format (Me.txtEDate, "mm/dd/yyyy") & " #"Afslut HvisAfslut HvisAfslut funktion

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave