VLookup在搜索中添加了另一列

时间:2014-07-16 04:19:34

标签: vba excel-vba excel

我对VBA很新,我遇到了VLOOKUP代码问题。

我有3张。 Sheet2(供应商)包含部件号和&供应商,表3(成本)包含部件号和&成本。 Sheet1(部件号)包含标准部件号列表。 Sheets2和3中的数据会定期更新。我希望VBA在供应商列表(Sheet2.ColumnA)中查找部件号(Sheet1.ColumnA),并将供应商名称(Sheet2.ColumnC)粘贴到Sheet1.ColumnB中。一旦我弄清楚如何执行此操作,我将修改代码以与成本类似,并将其放入Sheet1.ColumnC。

这是我到目前为止所拥有的:

Sub Lookup()

Application.ScreenUpdating = False

Dim Lr As Integer

Lr = Worksheets("Part Numbers").Cells(Rows.Count, 1).End(xlUp).Row ' last row

For i = 1 To Lr ' last row

Worksheets("Part Numbers").Cells(i + 1, 2) = "=VLOOKUP(RC[-1],'Supplier'!A:C,3,0)"

  If i = "" Then Exit For

Next i

End Sub

当我执行此代码时,Sheet1.ColumnB填充(取自单元格A)

"=VLOOKUP(A2,'Supplier'!A:B:B,3,0)" 

有谁可以告诉我为什么当我输入A:C?时显示A:B:B?

1 个答案:

答案 0 :(得分:0)

我的理解一直是混合R1C1和A1符号是有风险的,并且可能会产生意外和不良结果,因为Excel决定如何解释公式。请尝试以下方法:

Worksheets("Part Numbers").Cells(i + 1, 2) = "=VLOOKUP(RC[-1],'Supplier'!C1:C3,3,0)"

或者:

Worksheets("Part Numbers").Cells(i + 1, 2) = "=VLOOKUP(A" & (i + 1) & ",'Supplier'!A:C,3,0)"

在这种特殊情况下,我可能会选择后一种方法,因为C1:C3对于它是A1还是R1C1表示法来说有点混乱。如果您不总是根据A列查找,则可以使用较小的转换方法确定列索引中的列字母。

相关问题