我有一张只有订单号的表单,另一张订单号和所有与这些订单号相关的数据。我想匹配订单号并将所有可用数据传输到另一张表中。我一直在尝试使用循环和VLOOKUP,但我遇到了问题(另外我有116列我想传输数据,所以我的vlookup表达式看起来不太好)。任何建议将不胜感激!
这就是我到目前为止所得到的对象错误。 我不认为这是一般的正确方法。
Dim LookUpRange As Range
Dim row As Range
Set LookUpRange = Worksheets("batches").Range("B4:B1384")
Set row = Worksheets("batches").Range("C:DL")
For Each row In LookUpRange
row.Select
Selection.FormulaArray ="=VLOOKUP(RC[-1],OrderLvl!RC[-1]:R[1380]C[113],{2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,207,108,109,110,111,112,113,114,115},FALSE)"
Next row
End Sub
答案 0 :(得分:0)
如果您使用小技巧,常规VLOOKUP
可能会为您提供所需的内容......
=VLOOKUP($A2,[other sheet name]!$A$1:$DZ$5000,B$1,0)
显然,您需要调整范围,但请确保您的查找数组从A列开始。(或者,您的数字与数组中第一列的列相同。)添加数字沿着顶部允许您更改您引用的数组的哪一列,只需拖动单元格公式即可。
答案 1 :(得分:0)
请考虑使用此VBA脚本来解决您的问题:
Sub LookupOuput()
Dim OrderNumberColumn As Range
Set OrderNumberColumn = Worksheets("batches").Range("B2:B1384")
Dim LookUpRange As Range
Set LookUpRange = Worksheets("OrderLvl").Range("C:DL")
Dim cell As Range
Dim FindResult As Range
For Each cell In OrderNumberColumn
If Not cell.Value2 = Empty Then
Set FindResult = LookUpRange.Find(what:=cell.Value2)
If Not FindResult Is Nothing Then
cell.Range("A1:DJ1").Value2 = LookUpRange.Rows(FindResult.row).Value2
End If
End If
Next cell
End Sub
基本上在第二张纸的第一张纸上搜索每个订单号。此输出(如果搜索项存在)发现该字符串的单元格,我们稍后将其引用其行号以将整行输出到第一个工作表。欢呼声,