01.10.2021, 16:43
Hallo
ich habe eine Funktion im Netz gefunden, die mir das Datum des Montags einer angegebenen Kalenderwoche zurückmeldet.
Also ich gebe ein "39" (.KW) und bekommen zurück: "27.09.2021". So weit so gut.
Nun möchte ich die Funktion aber mit einer Variablen aufrufen:
hier die Funktion
Public Function MontagKW(myKW As Long, Optional myJahr)
' gibt den Montag der übergebenen Kalenderwoche im übergebenen oder aktuellen Kalenderjahrzurück
Dim KWMon As Date
Dim aktKalenderwoche As Long
If IsMissing(myJahr) Then myJahr = Year(Date)
MontagKW = DateSerial(myJahr, 1, 1) + (myKW - 1) * 7
MontagKW = MontagKW + 1 - Weekday(MontagKW, 2)
If Format(MontagKW, "ww", 2, 2) <> myKW Then MontagKW = MontagKW + 7
End Function
übergeben werden muss also ein Parameter im Long-Format.
Mache ich auch:
aktKalenderwoche = CLng(WorksheetFunction.WeekNum(Date, 21))
MsgBox TypeName(aktKalenderwoche) ---> liefert "Long"
MsgBox (MontagKW(aktKalenderwoche)) ----> liefert "Argumenttype ByRef unverträglich"
Die Variable aktKalenderwoche ist im Long - Format, so wie es die Funktion haben möchte; das zeigt mir die erste MsgBox auch an.
Die zweite MsgBox bringt aber den Fehler "Argumenttype ByRef unverträglich" ???
Wieso kommt diese Fehlermeldung?
Hat jemand eine Idee und kann helfen?
Gruß
Statler
ich habe eine Funktion im Netz gefunden, die mir das Datum des Montags einer angegebenen Kalenderwoche zurückmeldet.
Also ich gebe ein "39" (.KW) und bekommen zurück: "27.09.2021". So weit so gut.
Nun möchte ich die Funktion aber mit einer Variablen aufrufen:
hier die Funktion
Public Function MontagKW(myKW As Long, Optional myJahr)
' gibt den Montag der übergebenen Kalenderwoche im übergebenen oder aktuellen Kalenderjahrzurück
Dim KWMon As Date
Dim aktKalenderwoche As Long
If IsMissing(myJahr) Then myJahr = Year(Date)
MontagKW = DateSerial(myJahr, 1, 1) + (myKW - 1) * 7
MontagKW = MontagKW + 1 - Weekday(MontagKW, 2)
If Format(MontagKW, "ww", 2, 2) <> myKW Then MontagKW = MontagKW + 7
End Function
übergeben werden muss also ein Parameter im Long-Format.
Mache ich auch:
aktKalenderwoche = CLng(WorksheetFunction.WeekNum(Date, 21))
MsgBox TypeName(aktKalenderwoche) ---> liefert "Long"
MsgBox (MontagKW(aktKalenderwoche)) ----> liefert "Argumenttype ByRef unverträglich"
Die Variable aktKalenderwoche ist im Long - Format, so wie es die Funktion haben möchte; das zeigt mir die erste MsgBox auch an.
Die zweite MsgBox bringt aber den Fehler "Argumenttype ByRef unverträglich" ???
Wieso kommt diese Fehlermeldung?
Hat jemand eine Idee und kann helfen?
Gruß
Statler