在本文中,我们将创建一个宏,以列出定义的期间之间的月份以及该特定月份中的天数。它还将显示定义的期间之间的总天数。

我们创建了“ DaysInPeriod”宏来列出月份和一个月中的天数。单击“提交”按钮可以执行宏。

在运行宏之前,必须提供开始日期和结束日期的输入。它以“ 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]