错误1004:无法获得CountIf属性

我试图search一个命名单元格的范围来查看是否有任何包含大于零的数字的单元格。 这是我现在的代码:

Dim YTDclauses As Boolean Dim ytdrng As Range Set ytdrng = Worksheets("Sheet1").Range("z1AY:z1BB,z1BG:z1BJ") 'Employer 1 If Sheet1.[z1AG] = "No" And WorksheetFunction.CountIf(ytdrng, ">0") = 0 Then MsgBox "Works!" Else MsgBox "Does Not Work" End If 

我收到错误作为“运行时错误”1004“:无法获取WorksheetFunction类的CountIfs属性”。 通过查看其他问题,我认为这可能是一个语法错误,我怎么设置ytdrng,但我已经尝试了很多方式命名它不同的方式无济于事。 任何帮助表示赞赏,谢谢!

注意:Sheet1被命名为“Main Checklist” – 我也尝试在ytdrng的设置中使用它,但得到了同样的错误。

正如@ScottCraner所说的,你不能在分割范围上做一个countif 。 您可以稍微修改该例程,以便在范围内的每个单元格上循环来实现countif

 Dim YTDclauses As Boolean Dim ytdrng As Range Dim SRCountif As Long Dim cel As Object Set ytdrng = Worksheets("Sheet1").Range("z1AY:z1BB,z1BG:z1BJ") SRCountif = 0 For Each cel In ytdrng.Cells If cel.Value > 0 Then SRCountif = SRCountif + 1 Next 'Employer 1 If Sheet1.[z1AG] = "No" And SRCountif = 0 Then MsgBox "Works!" Else MsgBox "Does Not Work" End If 

(variablesSRCountif意思是S plit R ange Countif
请注意,由于它将数值与数字0进行比较,因此Exec会将任何文本大于0,因此如果您的范围内有任何文本的机会,则可能需要调整testing。