vba - 使 VBA DateDiff 的行为和 Excel DATEDIF 一样向下舍入

标签 vba excel

DateDiff("m", "06/14/1982", "09,01,1982") = 3

A1 = 06/14/1982
A2 = 09/01/1982
=DATEDIF(A1, A2, "m") = 2

如果我需要DateDiffDATEDIF 一样向下舍入确实,我该如何做到这一点?

最佳答案

您可以使用 Evaluate VBA 中的函数。但是,以这种方式处理日期时,您需要确保公式看到的值是与日期对应的数字,而不是 VBA Date 数据类型。如果日期存储在工作表单元格中,您将执行以下操作:

Evaluate("DATEDIF(" & [a1].Value2 & "," & [a2].Value2 & ", ""m"")")

如果日期作为日期存储在 VBA 变量中,则:
Evaluate("DATEDIF(" & CDbl(DT1) & "," & CDbl(DT2) & ", ""m"")")

关于vba - 使 VBA DateDiff 的行为和 Excel DATEDIF 一样向下舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43149954/

相关文章:

excel - 打开多个 Excel 实例会导致 VBA 问题吗?

excel - 如何使用 EPPlus 创建数据透视表来过滤一列和一组列中的行?

vba - 使用宏连接到数据库

visual-studio-2010 - 在 Excel 加载项、模板和工作簿之间进行选择?

vba - 运行时错误 1004

vba - Excel源数据方向错误

events - 未使用 adAsyncExecute 参数触发 ExecuteComplete ADODB 连接事件

php - 如何使用导出按钮在 View 中单击将数据库表导出到 Codeigniter 中的 Excel 工作表

excel - 更改录制的宏以处理所有数据[需要有关循环和语法的帮助]

jquery - xlsx.core.min.js :13 Uncaught Error: Unsupported file NaN