Hallo,
wenn das Datum des passenden Tages mit ausgegeben werden soll, muss lediglich hinteBefehl
iDatCount = iDatCount + 1
Das Datum in der Variable datTMP aufgerufen werden:
Dim Ausgabefeld, Eingabe, Eingabe2 As String
Dim ErstesDatum, ZweitesDatum As Date
Private Sub btnAbfragen_Click(sender As Object, e As EventArgs) Handles btnAbfragen.Click
'Ausgabefeld = txtAnzahl.Text
Eingabe = InputBox("Enter the first date, please.")
Eingabe2 = InputBox("Enter the second date, please.")
ZweitesDatum = CDate(Eingabe2)
ErstesDatum = CDate(Eingabe)
Dim iDatCount As Integer
Dim datDate As Date, datTMP As Date
datDate = ErstesDatum
Do While datDate <= ZweitesDatum
datTMP = DateSerial(Year(datDate), Month(datDate), 13)
If datTMP >= ErstesDatum And datTMP <= ZweitesDatum And Weekday(datTMP, vbUseSystemDayOfWeek) = 5 Then
iDatCount = iDatCount + 1
debug.print "Datum: ", datTMP
End If
datDate = DateAdd("m", 1, datDate)
Loop
Ausgabefeld = iDatCount
End Sub
Die Funktionsweise des Befehls DateAdd lässt sich leicht erklären:
Mit dem Befehl DateAdd können beliebige Angaben von einem bestehenden Datum hinzuaddiert oder abgezogen werden.
Über den Parameter Interval wird angegeben, um welche Art es sich bei der Angabe Number sich handelt.
Auf der MSDN-Webseite wird der VB.net Befehl erläutert. In VBA können keine Enumerations-Werte angegeben werden. Der VBA-Befehl versteht lediglich die String-Angaben:
z.B.:
"m" steht für X Monate
"s" steht für X Sekunden
Auf der Webseite https://msdn.microsoft.com/de-de/library/hcxe65wz(v=VS.90).aspx wird der gleiche Befehl in Deutsch für VBA erläutert.
VG, BigBen
|