簡體   English   中英

Excel VBA-查找以前的日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM