2017-03-06 5 views
1

別のワークシートの別の範囲から値を検索する必要があります。私は「×」と範囲を定義している、と私はR1C1製剤でそれを使用したい、例を参照してください。r1c1配合による定義済み範囲の参照

Set x = extwbk.Worksheets("ark1").Range("A1:d400") 
With twb.Sheets(filename) 
     .Range("k2:k" & n).FormulaR1C1 = "=VLOOKUP(RC[-10],x,4,False)" 
     .Range("l2:l" & n).FormulaR1C1 = "=VLOOKUP(RC[-11],x,4,False)" 

私が働くapplication.vlookupを実行しようとしましたが、あまりにも遅い、としています私は範囲がルックアップテーブルに応じて、柔軟であるべきであると私は、範囲Xを使用する必要があります 二回4000の+の行をループする必要があり、exmaple:

Set x = extwbk.Worksheets("ark1").Range("A1:d" & rows) 

iの範囲Xを参照することができますどのように任意の提案私の検索機能で? ありがとう!

+0

両方の列に正確に同じ数式を入れているという事実は、誤植ですか? – Rory

答えて

1

あなたはSet x = extwbk.Worksheets("ark1").Range("A1:d400")としてx範囲を設定している、とあなたはR1C1タイプ式でそれを使用したい、あなたはx.Address(False, False, xlR1C1)してx範囲からアドレスを取得することができます。あなたは、外部のブックを参照しているならば、あなたは4番目のパラメータを追加する、とも絶対範囲を探す必要があり、@Roryコメント及びPO後

.Range("K2:K" & n).FormulaR1C1 = "=VLOOKUP(RC[-10]," & x.Address(False, False, xlR1C1) & ",4,False)" 
.Range("L2:L" & n).FormulaR1C1 = "=VLOOKUP(RC[-11]," & x.Address(False, False, xlR1C1) & ",4,False)" 

は、以下の2行を使用してみてください:

.Range("K2:K" & n).FormulaR1C1 = "=VLOOKUP(RC[-10]," & x.Address(True, True, xlR1C1, True) & ",4,False)" 
.Range("L2:L" & n).FormulaR1C1 = "=VLOOKUP(RC[-11]," & x.Address(True, True, xlR1C1, True) & ",4,False)" 
+1

範囲が別のブックにあるようですので、 'External:= True'引数も必要です。 – Rory

+0

ありがとう! (セルa3) "= Vlookup(A3; K3:N402; 4; FALSE)" – KMO

+0

@KMO私に知らせてくださいそれは4番目のパラメータ –

関連する問題