如何在 Excel 中列出两个日期之间的所有日期?

ms excelmicrosoft technologiesadvanced excel function更新于 2025/4/12 21:00:17

假设您需要构建一个按日期组织的表格。例如,您正在制定一个日程表,并需要指定一个按日期以适当顺序排列的活动列表。您需要一个日期列表以备不时之需。

没有无限的列表,因此理所当然地,您的列表应该有一个开始日期和结束日期。在某些情况下,如果您已经知道开始日期和结束日期,则可能需要使用 Excel 创建一个列表,列出这两个指定日期之间的所有日期。

使用公式列出所有日期

让我们通过一个示例逐步理解。

步骤 1

在我们的示例中,Excel 工作表中有开始日期和结束日期。我们将创建一个介于开始日期和结束日期之间的日期列表。参见下图。

步骤 2

然后在 C2 单元格中输入以下公式并按 Enter 键。公式为 =A2+1,其中 A2 是填写开始日期的单元格。按 Enter 键后,您将看到下一个开始日期。参见下图。

步骤 3

之后,选择单元格 C3,在公式栏中输入以下公式,然后按 Enter。

=IF($A$2+ROW(A2)>=$B$2,"",C2+1)

步骤 4

点击单元格 C3 右下角的"+"号,激活自动填充功能,然后拖动向下反映到其他单元格中。

定义语法或修改此公式的困难是使用它的主要缺点。此外,日期的顺序也不太正确。

使用 VBA 列出所有日期

如果您对宏代码感兴趣,可以在 Excel 中使用以下 Visual Basic for Applications (VBA) 列出介于两个指定日期之间的任何日期。

请按照以下步骤操作 -

步骤 1

在单独的单元格中输入开始日期和结束日期。

步骤 2

要打开 Microsoft Visual Basic for Applications 窗口,请同时按下"Alt + F11"键。

步骤 3

然后点击插入 > 模块,弹出模块窗口。

这是 VBA 编辑器。

步骤 4

在模块窗口中,输入以下 VBA 代码。

Sub DatesBetween()Dim rng As RangeDim StartRng As RangeDim EndRng As RangeDim OutRng As RangeDim StartValue As VariantDim EndValue As Variant
    xTitleId = "VBOutput"Set StartRng = Application.SelectionSet StartRng = Application.InputBox("Start Range (single cell):", xTitleId, StartRng.Address, Type:=8)Set EndRng = Application.InputBox("End Range (single cell):", xTitleId, Type:=8)Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)Set OutRng = OutRng.Range("A1")StartValue = StartRng.Range("A2").ValueEndValue = EndRng.Range("A2").ValueIf EndValue - StartValue <= 0 Then
        Exit Sub
        End If
        ColIndex = 0
        For i = StartValue To EndValue
            OutRng.Offset(ColIndex, 0) = i
            ColIndex = ColIndex + 1
        NextEnd Sub

Step 5

点击运行或F5运行 VBA,会弹出一个窗口,您需要选择开始日期,然后点击确定,然后在下一个窗口中选择结束日期,然后点击确定。

然后会弹出另一个窗口,询问输出到,请提供输出单元格,然后点击确定。

在我们的示例中,"开始日期"的单元格值为 A2,所以我们这样写:"A2".

在我们的例子中,结束日期的单元格值为 B2,因此我们这样写: "B2".

在我们的例子中,Output Date 的 Cell 值为 C2,因此我们这样写: "C2".

点击"确定"后,关闭 VBA 窗口,您将获得开始日期和结束日期之间的日期,包括开始日期和结束日期,如下图所示。

总结

在本教程中,我们展示了两种不同的方法(公式和 VBA),您可以使用它们在 Excel 中列出两个给定日期之间的所有日期。


相关文章


有用资源