Worksheetfunction.countifs - 不识别日期?

时间:2014-08-17 14:04:26

标签: excel vba excel-vba worksheet-function countif

作为一个大型项目的一部分,我试图计算搜索范围之间的日期实例。

例如,我的日期范围是02/01/201404/01/2014,在我的搜索范围内,02/01/2014出现了4次,03/01/2014出现3次,{{1} }出现3次,然后计数将返回值10。

我可以使用数字 - 所以类似地假设我的搜索范围是2到4并且在我的搜索范围2中出现4次,3次出现3次而4次出现3次然后计数确实返回10次。但是当我对日期完全一样,然后计数返回0。

所以这里有2个测试代码 - 我在A栏中有数字,在B栏中有日期

04/01/2014

Sub testnumbers() Dim Val As Double Val = Application.WorksheetFunction.CountIfs(Range("A:A"), ">=2", Range("A:A"), "<=4") MsgBox Val End Sub 中返回正确的计数。而

Val

将值0返回到Sub testdates() Dim Val As Double Val = Application.WorksheetFunction.CountIfs(Range("B:B"), ">=02/01/2014", Range("B:B"), "<=04/01/2014") MsgBox Val End Sub ,就像它没有找到该范围内任何日期的任何实例一样。

任何人都可以看到我出错的地方吗?它似乎没有正确地看到日期...

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:-1)

试试这个:

Sub testdates()
    Dim Val As Double, wf As WorksheetFunction, r As Range, _
        d1 As Date, d2 As Date

    Set wf = Application.WorksheetFunction
    Set r = Range("B:B")
    d1 = DateValue("2/1/2014")
    d2 = DateValue("4/1/2014")

    Val = wf.CountIfs(r, ">=" & d1, r, "<=" & d2)
    MsgBox Val
End Sub