VBA计数多维数组中元素的出现情况,如何?

时间:2018-06-30 09:15:31

标签: arrays vba excel-vba excel

例如,我已经使用vba中的range定义了多维数组

Dim Arr() as Variant 
Arr = Range("A1:F5")

这导致Arr(1,1)到Arr(5,6)的5x6数组

我想计算一个字符串的出现次数,仅在Arr(5)(即第5行)中说“ ABC”。

以下代码可在整个数组中找到“ ABC”的计数

For Each x in Arr
  if x = "ABC" then Cnt = Cnt + 1
Next

但是,如果只想计算维度5,则Arr(5)返回错误。

2 个答案:

答案 0 :(得分:2)

Sub FindABC()
    Dim Arr(), cnt, x
    Const ROW_NUM = 5
    Arr = Range("A1:F5")
    For x = 1 To UBound(Arr, 2)
        cnt = cnt + IIf(Arr(ROW_NUM, x) = "ABC", 1, 0)
    Next
    MsgBox cnt
End Sub

答案 1 :(得分:1)

使用索引从第二个等级剥离最后一个“行”。拆分Joined结果将返回区分大小写的COUNTIF结果。

for

通过将连接的数组和条件都转换为普通大小写,可以返回不区分大小写的结果。