一对多查找是一种普遍的问题。
在vba中如果要实现一对多查找,可以借助字典Dictionary对象。代码如下:
Sub QQ1722187970()
Dim oWK As Worksheet
Set oWK = Sheet1
'存入结果
'定义字典对象变量
Dim oDic As Object
'创建字典对象
Set oDic = CreateObject("Scripting.Dictionary")
Dim arrKey
Dim arrItem
With oWK
For i = 2 To .Range("a65536").End(xlUp).Row
sID = .Cells(i, "a").Value
sValue = .Cells(i, "b").Value
With oDic
If .exists(sID) Then
sTemp = .Item(sID)
sTemp = sTemp & "!" & sValue
.Item(sID) = sTemp
Else
.Add sID, sValue
End If
End With
Next i
End With
'读取结果
Set oWK = Sheet2
With oWK
For i = 2 To .Range("a65536").End(xlUp).Row
sID = .Cells(i, "a").Value
sValue = oDic.Item(sID)
arr = Split(sValue, "!")
If UBound(arr) Then
End If
Next i
End With
'释放字典对象,清空内存
Set oDic = Nothing
End Sub


发表评论