Excel-vba:带有vba变量的Worksheetfunction.CountIfs

时间:2019-01-25 14:57:28

标签: excel vba

我确实在Excel中以两种不同的过程使用WorksheetFunction.CountIfs。在第一个过程中,我使用0.7作为标准,并且确实得到了正确的结果,在后一个过程中,我使用了等于0.7的变量,并且得到了(错误的)结果0(在版本1和版本2中,请参见下文)。这里不能使用变量作为标准吗?这对我很有用,因为我确实想在以条件为循环计数器的for循环中使用WorksheetFunction.CountIfs

换句话说:为什么这样做

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

0 个答案:

没有答案