Я использую WorksheetFunction.CountIfs
в Excel в двух разных процедурах. В первой процедуре я использую 0,7 в качестве критерия и получаю правильный результат, во второй процедуре я использую переменную, равную 0,7, и получаю (неправильный) результат 0 (в версии 1 и версии 2, см. Ниже). Разве нельзя использовать переменную в качестве критерия здесь? Это было бы полезно для меня, так как я хочу использовать WorksheetFunction.CountIfs
в цикле for, критерием которого является счетчик цикла.
Другими словами: почему это работает
Sub countIfsConstant()
Dim rngTest As Range
Dim rngTest2 As Range
Set rngTest = ActiveSheet.Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(10, 1))
Set rngTest2 = ActiveSheet.Range(ActiveSheet.Cells(1, 2), ActiveSheet.Cells(10, 2))
Debug.Print WorksheetFunction.CountIfs(rngTest, ">0.7", rngTest2, "b")
End Sub
Но это не
Sub countIfsVariable()
Dim rngTest As Range
Dim rngTest2 As Range
Dim lb As Single
Set rngTest = ActiveSheet.Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(10, 1))
Set rngTest2 = ActiveSheet.Range(ActiveSheet.Cells(1, 2), ActiveSheet.Cells(10, 2))
lb = 0.7
Debug.Print WorksheetFunction.CountIfs(rngTest, ">lb", rngTest2, "b") 'version 1
Debug.Print WorksheetFunction.CountIfs(rngTest, ">" & lb, rngTest2, "b") 'version 2
End Sub