Vba:如何在两个日期之间添加if


如果单元格位于两个日期之间,则可以在 VBA 中使用以下语法来计算总和:

 Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
                                                       Range(" A2:A9 "), " <= " & [E2])
End Sub

仅当范围A2:A9中的日期介于单元格E1中的开始日期和单元格E2中的结束日期之间时,此特定示例才会对范围B2:B9中的值进行求和。

然后总和将显示在单元格E3中。

以下示例展示了如何在实践中使用此语法。

示例:如何在 VBA 中的两个日期之间添加 If

假设我们有以下数据集,其中包含零售商店中不同日期销售的产品总数的信息:

假设我们只想计算01/07/202301/26/2023之间日期的销售额总和。

我们可以创建以下宏来执行此操作:

 Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
                                                       Range(" A2:A9 "), " <= " & [E2])
End Sub

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

请注意,单元格E3包含值16

这表示日期在 01/07/2023 和 01/26/2023 之间的销售额列中的值的总和。

我们可以通过手动计算 Sales 列中的值的总和来验证这是否正确,其中 Date 列中的相应值在 01/7/2023 和 01/26/2023 之间:

销售额总和:3 + 7 + 6 = 16

这对应于 VBA 计算的值。

请注意,如果您分别更改单元格E1E2中的开始日期和结束日期值,并再次运行宏,它将计算新日期的销售额总和。

注意:假设日期列中的值已被格式化为 Excel 中的日期。

其他资源

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

VBA:如何编写 SUMIF 和 SUMIFS 函数
VBA:如何编写 COUNTIF 和 COUNTIFS 函数
VBA:如何编写 AVERAGEIF 和 AVERAGEIFS 函数

添加评论

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