2012-08-23 4 views
0

안녕하세요 사용자가 입력 한 날짜 범위에 대한 일부 UserForm 유효성 검사를 넣으려고합니다.Excel VBA - 이전 날짜 찾기

선택해야하는 기간은 지난 주 월요일부터 일요일까지입니다. 2012 년 8 월 13 일부터 8 월 19 일까지 2012 년 8 월 24 일부터 2012 년 8 월 19 일까지 2012 년 8 월 24 일부터 2012 년 8 월 19 일까지 내일 신고 해.

보고서를 실행하는 요일 (예 : 금요일)을 계산하고 DateAdd를 사용하여 첫 번째 날짜의 이전 월요일 (-11)을 뺀 다음 이전 일요일 (-5) 두 번째 날짜입니다.

2012 년 8 월 14 일과 2012 년 8 월 19 일의 날짜 범위를 입력하면 2012 년 8 월 13 일부터 8 월 19 일까지 입력해야하는 기간을 알려주는 msgbox가 나타납니다. 잇다.

희망이 있습니다.

+1

항상 1 주일이면 시작일 만 입력하면 안됩니까? –

답변

0

이 작동합니다 : 당신이 Weekday(myDate)를 사용하는 경우

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 

은 내가 일반적으로 일요일 것으로 판단 시스템 주 시작 이후 며칠의 숫자가 정수를 반환합니다. 따라서 Monday = 1