2016-12-26 5 views
0

여기에 D3 셀에 다음 수식이있는 통합 문서가 있습니다.가변 시트 이름이 포함 된 Vba Vlookup

"= VLOOKUP ($ C3 '[NIGHT ROTA.xlsx] 15'A $ 5 $! $ I $ 32 D $ 1,0)"

소스 통합 52 장을 가지며 내가 특정 시트를 검색하려면 시트 이름을 수동으로 변경 한 다음 워크 시트 변경을 사용하여 내 통합 문서의 셀을 통해 복사하려면 아래 코드를 실행해야합니다.

내 통합 문서의 셀에있는 시트 이름을 변수로 사용하거나 드롭 다운에서 선택하는 방법이 있습니까? 나는 간접적으로 사용할 수 있지만 소스 통합 문서를 열 필요가 없다는 것을 알고 있습니다.

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 
당신은 드롭 다운 셀에 시트 이름을 넣을 수 있습니다

답변

1

E1 (또는 당신의 선택의)이 세포의 변화 캡처 :

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의 유효성을 수동으로 채워야 할 수도 있습니다.

+0

나는 이것을 시도하고 런타임 오류 5를 얻는다. – Sherbetdab

+0

@Sherbetdab 오타가 생겨서 죄송합니다. 편집 된 코드를 사용해보십시오. –

+0

이것은 효과가 있습니다. 내 수식은 다른 통합 문서에 따라서 간접 vlookup을 사용한 경우 다른 통합 문서를 열지 않으려는 이유로 인해 귀하의 방법이 훨씬 빠릅니다. 고맙습니다. – Sherbetdab