如何使用 vba 查找该月的第一天(带有示例)
您可以使用 VBA 中的DateSerial()函数(将日期参数设为1)来查找特定单元格中某个日期所在月份的第一天。
例如,您可以使用以下语法查找单元格A1中的日期所在月份的第一天,并在单元格B1中返回该日期:
dateVal = DateValue(Range(" A1 "))
Range(" B1 ").Value = DateSerial(Year(dateVal), Month(dateVal), 1)
例如,如果单元格A1包含1/5/2023 ,单元格B1将返回1/1/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)
Next i
End Sub
当我们运行这个宏时,我们会收到以下输出:
C 列中的每个日期代表 A 列中对应日期的该月的第一天。
注意#1:在代码中,我们使用了For i = 2 到 11 ,因为单元格 A2 到 A11 包含我们感兴趣的日期。您可以根据您要使用的单元格范围随意更改此范围。
注意#2 :您可以在此处找到 VBA 中DateSerial()函数的完整文档。
其他资源
以下教程说明如何使用 VBA 执行其他常见任务: