我想要做的是遍歷包含工作表名稱的範圍,如果單元格不爲空,則將函數的結果添加到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