我想要做的是遍历包含工作表名称的范围,如果单元格不为空,则将函数的结果添加到count变量中。WorksheetFunction.CountA没有返回正确的值
所以计数变量应该等于我正在迭代的工作表上的范围B9:B28
中的非空白单元格的数量,但奇怪的是,该值等于我要去的范围中的非空单元格的数量通过(sheet1!d5:d24
)。
我在做什么错?下面是我使用的代码:
For Each c In Worksheets("Sheet1").Range("d5:d24").Cells
If Not IsEmpty(c) Then
count = count + WorksheetFunction.CountA(c & "!b9:b28")
End If
Next
我通过第二范围尝试的另一种方法来循环,并且如果所述细胞是不为空,则通过1递增变量但是这给人一种运行时错误13类型不匹配错误。这是我现在正在做的:
For Each c In Worksheets("Sheet1").Range("d5:d24")
If Not IsEmpty(c) Then
For Each c2 In Worksheets(c).Range("b9:b28")
If Not IsEmpty(c2) Then
'count = count + WorksheetFunction.CountA(c & "!b9:b28")
count = count + 1
End If
Next
End If
Next
请帮我。提前感谢所有花时间回复的人。
我认为你需要提供'了一系列对象,而不是一个字符串.CountA'。尝试使用'.CountA(Worksheets(c).Range(“B9:B28”))' – 2013-02-15 15:07:34
您使用单元格(作为范围对象)并尝试向其添加地址表示法。当然,这不会工作。按照@PeterAlbert的建议。 – 2013-02-15 15:08:08
感谢您的快速回复家伙。我试过@彼得艾伯特的解决方案,但它抛出了类型不匹配的错误。我提供了字符串,因为我认为这些函数在Excel中的功能与VBA相同。 – 2013-02-15 15:18:53