엑셀 VBA에서 평일
우리는 두 날짜 사이의 평일의 수를 계산 엑셀 VBA에서 프로그램을보고 아래.
평일은 다음과 같습니다 : 월요일, 화요일, 수요일, 목요일, 금요일.
상황 :
참고 : 날짜는 미국의 형식에 있습니다. 제 월, 일 둘째. 형식의이 유형은 당신의 창 지역 설정에 따라 달라집니다.
-
먼저, 우리는 다섯 개 가지 변수를 선언합니다. Date 형의 날짜 1, 유형 정수의 유형 날짜를 입력 한 날짜 dateToCheck, 유형 정수의 daysBetween, 유형 정수의 평일의 날짜 2와 나는.
Dim date1 As Date, date2 As Date, dateToCheck As Date Dim daysBetween As Integer, weekdays As Integer, i As Integer
-
우리는 네 개의 변수를 초기화합니다. 우리는 변수 daysBetween를 초기화 참조 DateDiff 함수를 사용합니다. 이 함수는 세 개의 인수가 있습니다.
우리가 날짜 1과 날짜 2 사이의 일 수를 원하기 때문에 우리는 첫 번째 인수에 대해 “D”를 입력합니다.
weekdays = 0 date1 = Range("B2") date2 = Range("B3") daysBetween = DateDiff("d", date1, date2)
-
우리는 날짜가 평일인지 아닌지 날짜 1과 (날짜 1과 날짜 2 포함) 날짜 2 사이의 각 날짜를 확인해야합니다. 예, 우리는 (1)에 의해 평일를 증가하면 우리는 다음의 루프를 사용합니다.
For i = 0 To daysBetween
-
우리는 우리가 확인해야 각 날짜를 얻기 위해 DateAdd 함수 기능을 사용합니다. 이 함수는 세 개의 인수가 있습니다. 우리가 일 추가 할 수 있기 때문에 우리는 두 번째 인수에 대한 첫 번째 인수에 대해 “D”에 난을 작성하고 세 번째 인수에 대한 날짜 1 우리는 날짜 1에 나는에게 일을 추가 할 수 있기 때문이다. 이 방법 엑셀 VBA는 날짜 1과 날짜 2 날짜 1로 시작하는 사이 각 날짜를 확인할 수 있습니다. 다음 코드 줄을 추가
dateToCheck = DateAdd("d", i, date1)
예 : I 3, 엑셀 VBA 점검 날짜 1 + 3일 = 대한.
-
다음으로, 우리는 dateToCheck 평일인지 여부를 확인하기 위해 평일 기능 (기능의 빌드)를 사용합니다. 평일 함수는 토요일 일요일 1과 7을 반환합니다. 따라서, 우리가 단지 평일 (dateToCheck)이 아닌 경우, 변수 평일 증분 1과 동일하지 7과 동일 (<> 수단하지 같음). 다음 코드 라인은 작업을 완수.
If (Weekday(dateToCheck) <> 1 And Weekday(dateToCheck) <> 7) Then weekdays = weekdays + 1 End If
루프를 닫을 것을 잊지 마십시오 6..
Next i
-
마지막으로, 우리는있는 MsgBox를 사용하여 평일의 수를 표시합니다. 우리는 CONCATENATE (조인) 두 문자열에 & 연산자를 사용합니다. 평일 만이 여기에 작동하는 문자열이 아닙니다.
MsgBox weekdays & " weekdays between these two dates"
-
당신의 명령 단추에 매크로를 테스트합니다.
결과 :