Deze zelfstudie laat zien hoe u datums kunt opmaken met VBA.
Datums opmaken in VBA
Er zijn twee methoden om datums op te maken met VBA.
- De eigenschap NumberFormat van Cells / Ranges - Datums opmaken die in cellen zijn opgeslagen
- De VBA-opmaakfunctie - Datums in VBA opmaken (bijv. variabelen)
NummerFormaat - Datums
De standaard getalnotatie van een cel in Excel is Algemeen. U kunt waarden weergeven als getallen, tekst, datums, percentages of valuta's door de getalnotatie te wijzigen. De eigenschap NumberFormat kan in VBA worden gebruikt om de getalnotatie van datums in een cel of bereik in te stellen.
Opmerking: Om de verschillende standaard datumnotaties die beschikbaar zijn in Excel te zien, gaat u naar Home>Nummer en ziet u opties zoals Korte datum, Lange datum en Tijd.
Korte datum
De optie Korte opmaak van datumnummers geeft de datum weer in een korte, numerieke notatie.
Met de volgende code wordt de eigenschap .NumberFormat van cel A1 ingesteld op Korte datum:
1 | Bereik ("A1").NumberFormat = "mm/dd/jjjj" |
Lange datum
Opmaak met lange datumnummers geeft de datum in een langer, geschreven formaat weer. Met de volgende code wordt de eigenschap .NumberFormat van cel A1 ingesteld op Lange datum:
1 | Bereik ("A1").NumberFormat = "dddd, mmmm dd, jjjj" |
Aangepaste datums
Om de aangepaste nummernotatiecodes te zien die u in VBA kunt gebruiken om datums op te maken, gaat u naar Home>Nummer en klikt u op de Dialog Box Launcher. Selecteer het tabblad Nummer en kies Aangepast.
U kunt de aangepaste ingebouwde formaten voor uw datum selecteren of uw eigen door de gebruiker gedefinieerde datumnotaties maken. Met de volgende code wordt de eigenschap .NumberFormat van cel A1 ingesteld op een ingebouwde aangepaste datumnotatie:
1 | Bereik ("A1").NumberFormat = "mmm-jj" |
Het resultaat is:
Met de volgende code wordt de eigenschap .NumberFormat van cel A1 ingesteld op een door de gebruiker gedefinieerde aangepaste datumnotatie:
1 | Range("A1").NumberFormat = "dddd-dd-mmm-jj" |
Het resultaat is:
Door de vooraf gebouwde voorbeelden van Excel te bekijken, kunt u leren hoe NumberFormats moeten worden ingevoerd. Lees voor meer informatie de documentatie van Microsoft over getalnotaties voor datums.
VBA-formaatfunctie
Zoals hierboven vermeld, is de NumberFormat-methode geschikt voor het instellen van de Numberformat van datums die zijn opgeslagen in Excel-cellen. In VBA kunt u de functie Opmaak gebruiken om datums om te zetten in tekenreeksen met bepaalde datumopmaak.
U zou de volgende syntaxis gebruiken om datums op te maken:
Format(String_Representation, NumberFormatCode) waarbij:
String_Representation - de tekenreeks die de datum vertegenwoordigt.
NumberFormatCode - de getalnotatiecode die aangeeft hoe de datum moet worden weergegeven.
De volgende code laat zien hoe u een tekstreeksrepresentatie van een datum opmaakt als lange datumnotatie:
1 | MsgBox-indeling ("1/1/2010", "dddd, mmmm dd, jjjj") |
Het resultaat is:
Merk op dat de Formaatfunctie dezelfde syntaxis voor datumopmaak gebruikt als de NumberFormat hierboven.
De volgende code laat zien hoe u een tekstreeksrepresentatie van een datum opmaakt als middellange datumnotatie:
1 | MsgBox-indeling ("09 oktober 2012", "Gemiddelde datum") |
Het resultaat is:
De volgende code laat zien hoe u een tekstreeksrepresentatie van een datum opmaakt als een door de gebruiker gedefinieerde indeling:
1 | MsgBox-indeling ("09 oktober 2012", "dddd: dd/mm/jj") |
VBA Custom Format Builder
Onze VBA-invoegtoepassing: AutoMacro bevat een Custom Format Builder voor de VBA-editor. Hiermee kunt u aangepaste indelingen instellen en onmiddellijk een voorbeeld van de uitvoer bekijken voor uw gewenste waarde:
De VBA-invoegtoepassing bevat tal van andere "Code Generators", een uitgebreide codebibliotheek en een assortiment andere coderingstools. Het is de ultieme add-in voor iedereen die serieus bezig is met VBA-programmeren!
Datum in VBA-indeling in Access
De VBA Format Date-functie werkt precies hetzelfde in Access VBA als in Excel VBA.
12345678910 | Functie GetDateFilter() As String'maak een string om informatie uit 2 datumvelden op een formulier in Access te halen'Dim strDateField As StringAls IsNull(Me.txtSDate) = False DanAls IsNull(Me.txtEDate) = True Dan Me.txtEDate = Me.txtSDateIf strDateField2 = "" DanGetDateFilter = strDateField & " Between #" & Format(Me.txtSDate, "mm/dd/yyyy") & "# And # " & Format(Me.txtEDate, "mm/dd/yyyy") & "#"Stop alsStop alsFunctie beëindigen |