2016-05-02 18 views
0

特定のセル(J2:O2)にvlookupを挿入しようとしていますが、タイプの不一致が続きます。なぜ私は私の人生のために理解することはできません。ここで私は、現在持っているコードです:私はApplication.WorksheetFunction.VlookupVlookup Across Sheet Type 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 

を使用する必要がありますし、代わりにVLOOKUP関数の結果を格納するバリアントを定義しますか?

答えて

1

次のように、Parent_Lookup.Addressを追加します。@ScottCranerあたり.Address(1, 1, xlA1, True)を含めるように

編集

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 

別のオプションではなくRangeStringとしてParent_Lookupを宣言することです:

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

私はこれを行うと、 "Parent Mapping"シートの代わりに、vlookupで使用された範囲が現在のシートに変更されます(数式はB2:E20000になります)。 – kschindl

+0

割り当てた範囲を変更する必要があります。今度は答えを編集する –

+2

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