이 기사에서는 정의 된 기간 사이의 월과 해당 월의 일 수를 나열하는 매크로를 만듭니다. 또한 정의 된 기간 사이의 총 일 수도 표시됩니다.

월과 일 수를 나열하기 위해 “DaysInPeriod”매크로를 만들었습니다. “Submit”버튼을 클릭하여 매크로를 실행할 수 있습니다.

매크로를 실행하기 전에 시작 날짜와 종료 날짜를 입력해야합니다. 셀 “G6″의 값을 시작 날짜로, 셀 “G7″의 값을 종료 날짜로 사용합니다. 출력은“F9”셀 아래에 표시됩니다.

RawInput

제출 버튼을 클릭하면 매크로가 F 열에 월 이름을 표시하고 G 열에 해당 월의 일수를 표시합니다. 마지막 행에는 지정된 기간 사이의 총 일수가 표시됩니다.

AfterRunningMacro

논리 설명

매크로에서 시작 날짜부터 지정된 종료 날짜까지 반복을 시작합니다. 루핑하는 동안 한 달의 마지막 날짜를 확인합니다. 한 달의 마지막 날짜가 발견되면 해당 월의 월 이름과 일 수가 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]로 문의 해주세요