我在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
当我像这样运行时,它会以正确的位置结束,但不会将值增加到更高的值。有没有办法做到这一点?
答案 0 :(得分:1)
以下几种选择。
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
答案 1 :(得分:1)
您的代码按预期工作。你应该看:Excel VBA Introduction Part 3 - What to do When Things Go Wrong (Errors and Debugging)