VBA Vlookup可变图纸名称
我有一个工作簿,我在单元格D3中具有以下公式。
“= VLOOKUP($ C3,'[NIGHT ROTA.xlsx] 15 '!$ A $ 5:$ I $ 32,D $ 1,0)”
源工作簿有52张,当我想要search某个工作表时,我必须手动更改工作表名称,然后运行下面的代码,使用工作表更改将其复制到工作簿中的单元格中。
有没有办法将sheetname作为一个variables,我将在工作簿中的单元格中,或将从下拉列表中select? 我知道我可以使用INDIRECT,但不想打开源工作簿。
Sub WeekChange() Range("D3").Select Selection.Copy Range("D3:I26").Select Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False Range("A1").Select End Sub
你可以把表格名称放在一个下拉单元格中,比如E1
(或者你select的任何一个),并捕获这个单元格中的变化:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = Range("E1").Address Then Range("D3:I26").Formula = "=VLOOKUP($C3,'[NIGHT ROTA.xlsx]" & Target.Value & "'!$A$5:$I$32,D$1,0)" End If End Sub
要在E1
填充下拉框,最终可以在打开工作簿时进行设置,但由于您不想打开它(我想您有一些原因),您可能需要手动填充E1
的validation。