[英]Excel VBA - Find previous date
嗨,我正在嘗試對用戶輸入的日期范圍進行一些UserForm驗證。
需要選擇的日期范圍是星期一至星期日的前一周。 2012年8月13日至2012年8月19日。因此,如果我今天(2012年8月24日)運行報告,我如何確定我需要輸入的日期是2012年8月13日至2012年8月19日,如果我運行報表明天報告。
我可以通過計算運行報表的當天(例如星期五)的WeekDayName並從中使用DateAdd減去第一個日期的前一個星期一(-11)並減去前一個星期天(-)來做到這一點嗎? 5)第二個日期。
因此,如果用戶要輸入2012年8月14日和2012年8月19日的日期范圍,則會出現一個消息框,告訴他們應該輸入的日期范圍是2012年8月13日至2012年8月19日,他們是否要繼續。
希望這是有道理的。
這將起作用:
Sub testDate()
Dim myDate As Date
myDate = "8/14/2012"
Dim weekStartDate As Integer
weekStartDate = 2
'set for the sunday -> sunday for the given date
Dim startDate, endDate As Date
startDate = myDate - Weekday(myDate) + weekStartDate 'take current date, find system weekstart (Sunday), adjust accordingly
endDate = startDate + 6 'you are only adding 6 days to your week it seems?
MsgBox ("Please select a date between " & startDate & " and " & endDate)
End Sub
當您使用Weekday(myDate)
它返回一個整數,該整數是自系統周開始以來經過的天數,我相信通常是星期日。 因此, Monday = 1
依此Monday = 1
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.