将函数转换为子例程excel vba
我有一个如下的函数。我需要把它转换成一个子程序。或者有没有办法从子程序内部调用这个函数将函数转换为子例程excel vba,excel,vba,Excel,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 A
'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
你可以用“Sub”来代替“Function”,但我觉得你的问题还有很多……是的,你可以用两种方式来做。但是把它作为一个函数,并把它作为一个子程序调用会很好。在子例程中,只需说
Ret=LastDayOfMonth(param1,parm2)
谢谢Siddharth..它工作了..+1耶!这次我赢了你:p
sub callit()
Dim d as Date
d = LastDayOfMonth(...)
end sub