0

こんにちは、ユーザーが入力した日付範囲の 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 日であり、続行するかどうかが示されます。

これが理にかなっていることを願っています。

4

1 に答える 1

0

これはうまくいきます:

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など。

于 2012-08-24T01:12:09.657 に答える