2017-03-06 61 views
1

我必須從另一個工作表中的另一個範圍查找一些值。我已經定義的範圍爲「X」,我想用它在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,它的工作原理,但速度太慢,如我必須通過4000+行中循環兩次 我將需要使用的範圍X,作爲範圍應該是靈活的根據查找表,〔實施例:

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

任何建議如何我可以參照範圍X在我的查找功能? 謝謝!

+0

我假設你在兩欄中輸入完全相同的公式是一個錯字? – Rory

回答

1

要設置x範圍爲Set x = extwbk.Worksheets("ark1").Range("A1:d400"),並且要在R1C1型使用它在公式中,您可以通過x.Address(False, False, xlR1C1)x範圍內獲得的地址。

嘗試使用下面的兩行:

.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)" 

繼@Rory評論和PO,如果你指的是一個外部的工作簿,然後你需要添加一個第四個參數,並且還要尋找絕對範圍:

.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

非常感謝!是的,我想我將不得不使用external = True,因爲它目前在表格中給出了以下內容:(cell a3)「= Vlookup(A3; K3:N402; 4; FALSE)」 – KMO

+0

@KMO讓我知道它適用於第四個參數 –