我需要帮助在VBA中编写一行代码以返回月末结束日期。月末结束日期的逻辑就像这样......
如果该月的最后一天结束......
周日:那个月的最后一天是上个星期六。 (昨天) 星期一:那个月的最后一天是上个星期六。 (2天前) 周二:那个月的最后一天是上个星期六。 (3天前) 周三:那个月的最后一天是即将到来的星期六(未来3天) 周四:那个月的最后一天是即将到来的星期六(未来2天)星期五:那个月的最后一天是即将到来的星期六(将来的1天)
我目前的代码如下。月末结束日期的格式如下。的 2016年7月2日
Sub Macro1()
With ActiveWorkbook.Connections("ABC Query").ODBCConnection
.BackgroundQuery = True
.CommandText = Array( _
"exec [dbo].[getBSC_Monthly] @MonthEndDate = **where I need the line of code**")
答案 0 :(得分:-1)
Weekday()函数会告诉您当周的当天是什么(Sun = 1,Mon = 2等)。所以,如果Weekday()< 4,那么你想要的日期是Weekday()天前。如果WeekDay()> = 3,那么您希望将来有7个工作日()天。
DateSerial(Year(d), Month(d) + 1, 1) - 1 - Weekday(DateSerial(Year(d), Month(d) + 1, 1) - 1) + (7 * Abs(Weekday(DateSerial(Year(d), Month(d) + 1, 1) - 1) >= 4))
如果你真的只想要一个表达式,那就可以了:
{{1}}