2016-05-02 22 views
0

Ich versuche, ein Vlookup in bestimmte Zellen (J2: O2) einzufügen, aber ich bekomme immer Typ Mismatches. Ich kann nicht für das Leben von mir herausfinden, warum. Hier ist der Code, den ich derzeit haben:Vlookup über Blatt Typ Mismatch (VBA)

Dim Basel_Sheet As Worksheet 
    Set Basel_Sheet = Sheets("Basel 3 EAD") 

Dim Parent_Lookup As Range 
    Set Parent_Lookup = Sheets("Parent Mapping").Range("B2:E20000") 

With Basel_Sheet 
    .Cells(2, "J").Formula = "=VLOOKUP(A2," & Parent_Lookup & ",4, False)" 
    ... 
    ... 
    ... (formulas for remaining columns) 
End With 

Sollte ich Application.WorksheetFunction.Vlookup ist und eine Variante mit in anstatt das vlookup Ergebnis zu speichern?

Antwort

1

hinzufügen .Address nach Parent_Lookup, wie folgt aus:

Edited .Address(1, 1, xlA1, True) pro @ScottCraner

Dim Basel_Sheet As Worksheet 
    Set Basel_Sheet = Sheets("Basel 3 EAD") 

Dim Parent_Lookup As Range 
    Set Parent_Lookup = Sheets("Parent Mapping").Range("B2:E20000") 

With Basel_Sheet 
    .Cells(2, "J").Formula = "=VLOOKUP(A2," & Parent_Lookup.Address(1, 1, xlA1, True) & ",4, False)" 
End With 

Eine weitere Option, um ist Parent_Lookup als String zu erklären, statt eines Range:

Dim Basel_Sheet As Worksheet 
    Set Basel_Sheet = Sheets("Basel 3 EAD") 

Dim Parent_Lookup As String 
    Parent_Lookup = "'Parent Mapping'!B2:E20000" 

With Basel_Sheet 
    .Cells(2, "J").Formula = "=VLOOKUP(A2," & Parent_Lookup & ",4, False)" 
End With 
+0

Wann Ich tue das, der Bereich, der in dem vlookup verwandt wird, wird in dem aktuellen Blatt (Formel hat nur B2: E20000) statt des Blattes "Parent Mapping" geändert. – kschindl

+0

Sie müssen den zugewiesenen Bereich ändern. Bearbeiten der Antwort jetzt –

+2

'Parent_Lookup.Address (1,1, XlA1, TRUE)' –