在vba中获取星期五日期

在vba中获取星期五日期,vba,excel,Vba,Excel,我想知道本月的星期五日期 这就是我的想法: functionFindFriday() if 1st friday then functionFindFriday = '6 dec 2013' if 2nd friday then functionFindFriday = '13 dec 2013' if 3rd friday then functionFindFriday = '20 dec 2013' if 4th friday then functionFindFriday = '20 de

我想知道本月的星期五日期 这就是我的想法:

functionFindFriday()
if 1st friday then functionFindFriday = '6 dec 2013'
if 2nd friday then functionFindFriday = '13 dec 2013'
if 3rd friday then functionFindFriday = '20 dec 2013'
if 4th friday then functionFindFriday = '20 dec 2013'
end function
我想把它叫做

功能FindFriday1将显示“2013年12月6日”

functionFindFriday 2它将在functionFindFriday中显示“2013年12月13日”

拿到票。 使用Weekdaythat_day了解一周中的哪一天。 Date将该日与星期五分开的天数添加到该日,如果该日为星期二,则添加3。 开始日期在上述结果的基础上加上7,每次再加上一个星期五,直到下一个结果属于下一个月。 这项工作:

Function FindFriday(nFriday As Integer) As Date
    Dim dateFirst As Date
    Dim dateNthFriday As Date
    dateFirst = DateSerial(Year(Now), Month(Now), 1)
    dateNthFriday = DateAdd("d", 7 * nFriday - Weekday(dateFirst, vbSaturday), dateFirst)
    If DateSerial(Year(dateNthFriday), Month(dateNthFriday), 1) <> dateFirst Then _
        Err.Raise 9999, , "There aren't " & nFriday & " Fridays in this month."
    FindFriday = dateNthFriday
End Function

请包括尝试的解决方案以及它们不起作用的原因!查看Application.WorksheetFunction.Weekday以了解起点!简单的公式是:=TODAY-DAYTODAY+8-WEEKDAYTODAY-DAYTODAY+2+N-1*7。在VBA中:findFriday=Date-DayDate+8-WeekdayDate-DayDate,vbFriday+N-1*7你是我的英雄!!!谢谢