參考WorksheetFunction.CountIf method (Excel)可以知道第一個參數型態應該是Range
Sub test()
Dim aryi As Range
Dim sum As Integer
Set aryi = Range("A1:A49")
sum = Application.WorksheetFunction.CountIf(aryi, ">2")
MsgBox sum
End Sub
aryi已是陣列型態,當符合range,所以還是請再麻煩看看!
請問您說的「符合」是從甚麼定義或參考來的呢?
Range object (Excel)
Using arrays
沒看到任何他們相同可以互通的依據,上網google找「vba array range」多的是他們轉換的方法,沒看到能互通直接能用的
我的程式運算都在vba執行,可否不用再回工作表換成range型態再執行
Application.WorksheetFunction.CountIf
參考這篇問答裡的回答吧excel - VBA Why does Application.Countif return an array or error 424
you are intentially trying to use the Application.WorksheetFunction.CountIf statement on an array. that will only cause trouble, since CountIf (as the statment suggests) is a"worksheet function"not a"VBA array function".
VBA沒有給array給一個類似countif的工具,個人建議就是改用迴圈算出來您要的統計
那改成sum = Application.WorksheetFunction.sumproduct((aryi >2)*1),反而是">"顯示型態不符合,這又該如何?
「陣列」跟一個「數值」比較後,會回傳甚麼您真的知道嗎