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/2023和01/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 计算的值。
请注意,如果您分别更改单元格E1和E2中的开始日期和结束日期值,并再次运行宏,它将计算新日期的销售额总和。
注意:假设日期列中的值已被格式化为 Excel 中的日期。
其他资源
以下教程说明如何在 VBA 中执行其他常见任务:
VBA:如何编写 SUMIF 和 SUMIFS 函数
VBA:如何编写 COUNTIF 和 COUNTIFS 函数
VBA:如何编写 AVERAGEIF 和 AVERAGEIFS 函数