我有2个工作表。我将有一个宏来处理Sheet1中的Vlookup。 Sheet2将是存储的数据。但是,每个术语的数据列不相同,因此我必须检查列名。
这是工作表1.我将输入'会员ID'然后执行Vlookup到工作表2以获得'会员名'& '备注'。
这是第2页,其中存储了所有数据。
这是Vlookup代码。
With Sheets("Sheet1")
.Range("G2:G" & .Cells(.Rows.Count, "F").End(xlUp).Row).Formula = "=VLOOKUP(RC[-1],Sheet2!C[-3]:C[-2],2,FALSE)"
End With
With Sheets("Sheet1")
.Range("H2:H" & .Cells(.Rows.Count, "F").End(xlUp).Row).Formula = "=VLOOKUP(RC[-2],Sheet2!C[-4]:C,5,FALSE)"
End With
我通过搜索Column标头尝试Vlookup。但我不知道该怎么做。
Worksheets("Sheet2").Activate
' Map Account name
Rows("1:1").Select
Set cell = Selection.Find(What:="Member ID", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If cell Is Nothing Then
MsgBox "Column 'Member ID' could not be found.", vbCritical, "No such column"
Cancel = True
Else
'Vlookup here
答案 0 :(得分:1)
这里不需要VBA!你可以一直用公式做到这一点。两个选项:
<强> 1。使用INDEX / MATCH
在G2中使用以下公式:=INDEX(Sheet2!E:E,MATCH(F2,Sheet2!D:D,0)
。在下一栏中将E:E
替换为H:H
。
您现在可以根据自己的喜好调整第2页中列的顺序。
<强> 2。使用VLOOKUP和MATCH
如果你事先不知道订单,你也可以先找到列号 - 然后再建立VLOOKUP:
=MATCH(F2,Sheet2!1:1,0)
。这将返回每个标题的列号。=VLOOKUP($F3,Sheet2!$D:$Z,G$1-F$1+1,0)
希望有所帮助!