数组 – 增加数组vba中元素的值

我在VBA for Excel中工作,我有一个整数数组.我想要做的是在满足条件时将1添加到数组内的特定元素.在我的示例代码中,如果A列中的单元格是5,那么我想在数组的第5个位置添加1,或者如果单元格是3,则将1添加到数组的第3个位置.

Sub CountCustomers()
    Dim myArray(5)
    Dim i as integer
    For i = 1 to 10
        If Cells(i,1) = 5 Then
           myArray(4) = myArray(4)+1
        ElseIf Cells(i,1) = 3 Then
           myArray(2) = myArray(2)+1
        End If
    Next
End Sub

当我像这样运行时,它会以正确的位置结束1,但不会增加任何更高的值.有没有办法做到这一点?

最佳答案 下面有几个选项.

>最好使用数组来提高速度而不是循环(选项2)
>对于此特定示例,您可以直接使用CountIF(选项1)

如果您有多个处理路线,那么Select可能比Else If更有效

代码#1

Sub Option1()
Debug.Print "number of 5's: " & Application.WorksheetFunction.CountIf([a1:a10], 5)
Debug.Print "number of 3's: "; Application.WorksheetFunction.CountIf([a1:a10], 3)
End Sub

代码#2

Sub Option2()
Dim x
Dim myArray(1 To 5)
Dim lngCnt As Long

'put range into 2D variant array
x = [a1:a10].Value2
For lngCnt = 1 To UBound(x)
    Select Case x(lngCnt, 1)
    Case 5
    myArray(4) = myArray(4) + 1
    Case 3
    myArray(2) = myArray(2) + 1
    Case Else
    'do nothing
    End Select
Next

Debug.Print myArray(4), myArray(2)

End Sub
点赞