excel - vba sumifs 对日期感到困惑,四月的错误结果

标签 excel vba user-defined-functions worksheet-function

我正在关注这个 other Stack Overflow question ,并且非常开明,但是当我对结果进行健全性检查时,我在 4 月发现了这种特殊的奇怪行为,任何 rev_date 4 月的结果为 0。我尝试了不同的日期和 rev_dategrid_date间隔,但发生同样的事情,我可以责怪系统日期配置吗?我错过了什么?

恕我直言,我宁愿使用 in-excel 公式而不是 UDF,但这个奇怪的结果让我心痒难耐。

Screen of the testcase

使用这个 UDF:

Public Function GRIDSALES(rev_date As Date, grid_date As Date) As Double

  Dim Team As Range
  Dim First_PD As Range
  Dim PAmount1 As Range

  Application.Volatile (True)

  Set PAmount1 = Sheets("Sheet1").Range("$F6:$F12")
  Set First_PD = Sheets("Sheet1").Range("$E6:$E12")
  Set Team = Sheets("Sheet1").Range("$D6:$D12")

            GRIDSALES = Application.WorksheetFunction.SumIfs( _
            PAmount1 _
            , Team, "<>9" _
            , First_PD, ">=" & Format$(rev_date, "dd mmm yyyy") _
            , First_PD, "<=" & Format$(Application.WorksheetFunction.EoMonth(grid_date, 0), "dd mmm yyyy"))

End Function

最佳答案

我遵循了你所拥有的,我得到了正确的结果。您将日期设置硬编码为“dd mmm yyyy”,这是我在处理法语设置时发现的,无法识别。通过控制面板检查您的设置,了解您拥有的区域设置。
另外,检查您的日期 mm/dd 使用情况。更改单元格格式以指示月份名称而不是“05”。这样你就可以验证你没有颠倒日期和月份而且每个日期都是一个日期。

enter image description here

关于excel - vba sumifs 对日期感到困惑,四月的错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6344502/

相关文章:

MySQL:LIMIT 是否减少了对用户定义函数的调用次数?

vba - 循环与 "Select Cases"组合

java - 如何下载从数据库中获取结果集的excel表

php - 将数据库导出到php中excel文件中的不同工作表

获取特定工作表名称的函数

vba - 使用 VBA 删除工作表会使 Excel 崩溃

lua - 如何在aerospike中获取ttl为-1的记录集?

java - Excel POI 3.5 WorkBook Java 堆空间异常?

vba - VBA 中的 Workbooks.Open 方法

java - 如何在 Apache Spark 中将 Scala UDF 转换为 Java 版本?