如何使用 vba 查找该月的最后一天(带有示例)


您可以使用 VBA 中的DateSerial()函数(将日期参数设为0)来查找特定单元格中某个日期所在月份的最后一天。

例如,您可以使用以下语法查找单元格A1中的日期所在月份的最后一天,并在单元格B1中返回该日期:

 dateVal = DateValue(Range(" A1 "))

Range(" B1 ").Value = DateSerial(Year(dateVal), Month(dateVal)+1, 0)

例如,如果单元格A1包含1/5/2023 ,单元格B1将返回1/31/2023

下面的例子展示了如何在实际中使用这个功能。

示例:使用 VBA 查找该月的最后一天

假设 Excel 中有以下数据集,其中包含有关公司不同日期的销售额的信息:

假设我们要查找 A 列中每个日期的该月的最后一天,并返回 C 列中相应单元格中的日期。

我们可以使用以下语法来做到这一点:

 SubFirstDayOfMonth ()

Dim i As Integer

For i = 2 To 11
    dateVal = DateValue(Range(" A " & i))
    Range(" C " & i).Value = DateSerial(Year(dateVal), Month(dateVal)+1, 0)
Next i

End Sub

当我们运行这个宏时,我们会收到以下输出:

VBA查找该月的最后一天

C 列中的每个日期代表 A 列中对应日期该月的最后一天。

注意#1:在代码中,我们使用了For i = 2 到 11 ,因为单元格 A2 到 A11 包含我们感兴趣的日期。您可以根据您要使用的单元格范围随意更改此范围。

注意#2 :您可以在此处找到 VBA 中DateSerial()函数的完整文档。

其他资源

以下教程说明如何使用 VBA 执行其他常见任务:

如何在VBA中按日期排序
如何在VBA中的两个日期之间添加if
如何在VBA中计算大于日期的数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注