나는 아래와 같은 함수를 가지고 있습니다. 서브 루틴으로 변환해야합니다. 서브 루틴 내부에서이 함수를 호출 할 수있는 방법이 있습니까?함수를 서브 루틴으로 변환하기 vba
'function to calculate nth specific last day of a month like last saturday or last monday
Function LastDayOfMonth(Which_Day As String, Which_Date As String) As Date
Dim i As Integer
Dim iDay As Integer
Dim iDaysInMonth As Integer
Dim FullDateNew As Date
Which_Date = CDate(Which_Date)
Select Case UCase(Which_Day)
Case "SUN"
iDay = 1
Case "MON"
iDay = 2
Case "TUE"
iDay = 3
Case "WED"
iDay = 4
Case "THU"
iDay = 5
Case "FRI"
iDay = 6
Case "SAT"
iDay = 7
End Select
iDaysInMonth = Day(DateAdd("d", -1,DateSerial(Year(Which_Date),Month(Which_Date)+ 1, 1)))
FullDateNew = DateSerial(Year(Which_Date), Month(Which_Date), iDaysInMonth)
For i = 0 To iDaysInMonth
If Weekday(FullDateNew - i) = iDay Then
LastDayOfMonth = FullDateNew - i
Exit For
End If
Next i
End Function
당신은 그냥 "하위"과 "기능"을 대체 할 수있는,하지만 난 당신의 질문에 더가 있다는 느낌이 ... – Joe
그래 당신은 그것을 두 가지를 할 수 있습니다. 그러나 그것을 함수로 유지하고 그것을 서브 루틴이라고 부르는 것은 좋을 것입니다. 서브 루틴의 내부에서 간단히'Ret = LastDayOfMonth (param1, parm2)'라고 말하십시오. –
감사합니다. Siddharth.it worked .. –