Excel 如何查找多个数据并从查找位置返回相应的数据。另外,VBA中VLOOKUP还有哪些更快的替代方案?
如何从查找数据中查找所有数据并从查找位置返回“House”数据。我使用了以下代码,但速度很慢,它只是将数组公式粘贴到单元格上Excel 如何查找多个数据并从查找位置返回相应的数据。另外,VBA中VLOOKUP还有哪些更快的替代方案?,excel,vba,Excel,Vba,如何从查找数据中查找所有数据并从查找位置返回“House”数据。我使用了以下代码,但速度很慢,它只是将数组公式粘贴到单元格上 .Cells(12 + i, 3).FormulaArray = "=INDEX($G:$G,MATCH(B4 & C4 & D4,$H:$H & $I:$I & $J:$J,0))" 我想到的其他想法是,连接查找数据和查找位置,然后使用查找获得相应的数据 使用VBA查找多个数据有没有更快的方法? 这是所需的代码。我
.Cells(12 + i, 3).FormulaArray = "=INDEX($G:$G,MATCH(B4 & C4 & D4,$H:$H & $I:$I & $J:$J,0))"
我想到的其他想法是,连接查找数据和查找位置,然后使用查找获得相应的数据
- 使用VBA查找多个数据有没有更快的方法?
- 这是所需的代码。我使用的是数组,而不是更快的范围。如果需要找到3个以上的值,您可以调整外循环。请检查。它对我有用
Public Sub MultipleMatch()
Dim arr As Variant, arr2 As Variant, i As Byte, j As Long
With Sheets("Sheet4")
arr = .Range("G4:J" & .Cells(1048576, "G").End(xlUp).Row).Value
arr2 = .Range("B4:D6").Value
For i = 1 To 3
For j = LBound(arr, 1) To UBound(arr, 1)
If arr(j, 2) = arr2(i, 1) And arr(j, 3) = arr2(i, 2) And arr(j, 4) = arr2(i, 3) Then
.Cells(i + 13, 2).Value = arr(j, 1)
Exit For
End If
Next j
Next i
End With
End Sub
看见