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

时间:2011-06-14 13:47:01

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

我遵循这个other Stack Overflow question,并且非常开明,但是当我对结果做出理智检查时,我在4月得到了这个特殊的奇怪行为,任何{4}}的4月产生的结果是0.我尝试了不同的日期和rev_daterev_date间隔,但同样的事情发生了,我可以责怪系统日期配置吗?我错过了什么?

恕我直言,我宁愿使用in-excel公式而不是UDF,但这个奇怪的结果在我脑海中痒痒。

Screen of the testcase

使用此UDF:

grid_date

2 个答案:

答案 0 :(得分:4)

我按照你所拥有的,得到了​​正确的结果。你很难将日期设置编码为“dd mmm yyyy”,我在处理法语设置时发现,这是不可识别的。通过控制面板检查您的设置,了解您所拥有的区域设置。 另外,检查您的日期mm / dd使用情况。更改单元格格式以指示月份名称而不是“05”。通过这种方式,您可以确认您没有扭转日期和月份。每个日期确实都是日期。

enter image description here

答案 1 :(得分:1)

不确定,但我认为在VBA中您应该始终使用美国日期格式。我通常将它定义为常数:
const kUsDate = "mm\/dd\/yyyy"
反斜杠是转义字符 作为证明,试试这个:在B2中输入类似20/6/2011(法国风格)的日期,然后从VBA输入代码

Debug.Print ActiveCell.NumberFormat

Excel将返回:m/d/yyyy CQFD
; - )