如何在 Excel 中列出两个日期之间的所有日期?
假设您需要构建一个按日期组织的表格。例如,您正在制定一个日程表,并需要指定一个按日期以适当顺序排列的活动列表。您需要一个日期列表以备不时之需。
没有无限的列表,因此理所当然地,您的列表应该有一个开始日期和结束日期。在某些情况下,如果您已经知道开始日期和结束日期,则可能需要使用 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,所以我们这样写:"2".

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

在我们的例子中,Output Date 的 Cell 值为 C2,因此我们这样写: "2".
点击"确定"后,关闭 VBA 窗口,您将获得开始日期和结束日期之间的日期,包括开始日期和结束日期,如下图所示。

总结
在本教程中,我们展示了两种不同的方法(公式和 VBA),您可以使用它们在 Excel 中列出两个给定日期之间的所有日期。
相关文章
有用资源
excel 参考教程 - 该教程包含有关 excel 的更多信息:https://www.cainiaomax.com/excel/

