0
以下代码尝试合并列G和S中的值,然后计算每个值出现的次数。EXCEL VBA - 使用字典和数组计数
但是,当我运行此代码时,数字返回始终是最后一个行号,我相信它感觉所有的值都是相同的。我怎样才能解决这个问题?
这只是整个代码的核心部分,所以有些变量可能在前面的行中定义。
Worksheets("Raw Data").Range("BL2:BL" & lastrow).Formula = "=G2&""_""&S2"
Const CB_COL As Long = 64
Dim d2 As Dictionary
Set d2 = New Dictionary
For i = 2 To lr
If Not d2.Exists(arr(i, CB_COL)) Then
d2.Add arr(i, CB_COL), 1
Else
d2(arr(i, CB_COL)) = d2(arr(i, CB_COL)) + 1
End If
Next
For i = 2 To lr
arr(i, CB_COL + 1) = d2(arr(i, CB_COL))
Next
With Worksheets("Raw Data")
.Range(.Cells(1, 1), .Cells(lr, CB_COL + 1)) = arr
End With
这对我来说有点困惑。 'arr(i,CB_COL)'应该包含一列重复的值。但是,随后,您正在循环遍历'arr'并在'CB_COL' + 1中分配计数? – AiRiFiEd