VBA CountIfs忽略一个参数

时间:2017-01-11 19:02:58

标签: excel vba excel-vba

我的Application.WorksheetFunction.CountIfs代码发生了以下问题。

当我做那些使它看起来并计入“TER”这个词的时候,它就可以了。

当我在日期之间进行清算时,它会起作用。

当我把我说的论点放在一起时,它只是在日期之间计算,就像countifs忽略了我想要计算列中的单词TER的参数。 我研究了很多,找不到有帮助的东西。已经尝试在“TER”中添加两个引号。

谢谢。

Dim TerminPerio As Integer, IniRAM As Date, FimRAM As Date
Dim NecessTOT As Integer

IniRAM = #12/1/2016#           
FimRAM = #12/31/2016#

NecessTOT = Application.WorksheetFunction.CountIfs(Range("L:L"), "TER", Range("I:I"), ">=" & CDbl(IniRAM), Range("I:I"), "<=" & CDbl(FimRAM)) 
'NecessTOT = Application.WorksheetFunction.CountIfs(Range("L:L"), "TER")
'NecessTOT = Application.WorksheetFunction.CountIfs(Range("I:I"), ">=" & CDbl(IniRAM), Range("I:I"), "<=" & CDbl(FimRAM)) 

MsgBox (CStr(NecessTOT))

End Sub

1 个答案:

答案 0 :(得分:0)

感谢大家的帮助。 我的解决方案是做其他事情: 简而言之,为了获得我想要的结果,我对列进行了一些连续的自动过滤,复制了受影响的行,并使用另一个命令行对寄存器的数量进行了计数。

示例:

Selection.AutoFilter
    ActiveSheet.Range("$L$1:$L" & LR).AutoFilter Field:=27, Criteria1:=CStr(MESRAM)
    ActiveSheet.Range("$AK$1:$AK" & LR).AutoFilter Field:=28, Criteria1:=CStr(ANORAM)
    ActiveSheet.Range("$AE$1:$AE" & LR).AutoFilter Field:=29, Criteria1:=CStr(MESRAM)

LR = Cells(Rows.Count, "A").End(xlUp).Row