목록 Microsoft Excel에서 VBA를 사용하여 일정 기간에 달의 일을 추가하고
이 기사에서는 정의 된 기간 사이의 월과 해당 월의 일 수를 나열하는 매크로를 만듭니다. 또한 정의 된 기간 사이의 총 일 수도 표시됩니다.
월과 일 수를 나열하기 위해 “DaysInPeriod”매크로를 만들었습니다. “Submit”버튼을 클릭하여 매크로를 실행할 수 있습니다.
매크로를 실행하기 전에 시작 날짜와 종료 날짜를 입력해야합니다. 셀 “G6″의 값을 시작 날짜로, 셀 “G7″의 값을 종료 날짜로 사용합니다. 출력은“F9”셀 아래에 표시됩니다.
제출 버튼을 클릭하면 매크로가 F 열에 월 이름을 표시하고 G 열에 해당 월의 일수를 표시합니다. 마지막 행에는 지정된 기간 사이의 총 일수가 표시됩니다.
논리 설명
매크로에서 시작 날짜부터 지정된 종료 날짜까지 반복을 시작합니다. 루핑하는 동안 한 달의 마지막 날짜를 확인합니다. 한 달의 마지막 날짜가 발견되면 해당 월의 월 이름과 일 수가 F 및 G 열에 표시됩니다. 마찬가지로 종료 날짜도 확인합니다. 종료 날짜가 발생하면 지난 달 항목과 해당 월의 일 수가 표시됩니다.
아래 코드를 따르세요
Option Explicit Sub DaysInPeriod() Dim StartDate, EndDate As Date Dim intRow As Integer, intDays As Integer 'Clearing previous content Range("F10:G1048576").ClearContents 'Getting start and end date StartDate = Range("G6") EndDate = Range("G7") 'Initializing the variable to starting row number intRow = 10 'Listing the months and number of days from starting date to end date Do intDays = intDays + 1 'Checking for last date of the month or when StartDate is equal to EndDate If (Month(StartDate) <> Month(StartDate + 1)) Or StartDate = EndDate Then 'Inserting the month name Cells(intRow, 6) = Format(StartDate, "mmmm") 'Inserting number of days in the month Cells(intRow, 7) = intDays 'Moving to next row intRow = intRow + 1 intDays = 0 End If 'Moving to next date StartDate = StartDate + 1 Loop Until StartDate > EndDate 'Getting the sum in the last row Cells(intRow, 6) = "Total Days" Cells(intRow, 7) = Application.Sum(Range("G10:G" & intRow)) End Sub
이 블로그가 마음에 들면 Facebook 및 Facebook에서 친구들과 공유하십시오.
여러분의 의견을 듣고 싶습니다. 작업을 개선하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]로 문의 해주세요