VBA使用CountIfs统计满足日期条件数据时报1004错误如何解决
VBA调用WorksheetFunction.CountIfs报错1004解决方案
错误原因
CountIfs函数要求参数严格按照「条件区域,匹配条件」的成对规则传入,你提供的第三参数为单个单元格值APAC.Range("H" & o).Value,没有传入对应的日期判断区域,不符合语法要求触发报错。
修正后代码
如果你要判断D2:D1000匹配目标值、且对应行H2:H1000的日期晚于当日,修正代码如下:
Hidden.Range("F" & p).Value = Application.WorksheetFunction.CountIfs( _ APAC.Range("D2:D1000"), APAC.Range("D" & o).Value, _ APAC.Range("H2:H1000"), ">" & Date)
额外注意事项
- 提前确认
APAC、Hidden均为已正确赋值的有效工作表对象,避免对象未定义引发其他报错 - 确认APAC表H列的数据格式为标准日期格式,文本格式的日期会导致条件匹配失效
- 如需避免无匹配结果时程序中断,可以将
Application.WorksheetFunction.CountIfs替换为Application.CountIfs,无匹配时会返回错误值而非抛出运行时错误,可后续通过IsError函数判断结果有效性
内容的提问来源于stack exchange,提问作者Jason Robins
相关产品推荐
相关产品推荐

