2016-07-06 52 views
0

我想做一個查找循環來搜索列表中的值,並在4個細節中返回它們,但我的公式不工作,它只是返回我的變量名稱細胞。Vlookup在循環中複製信息

Private Sub copydata() 'copy fornecedor data if match 

Dim rng As Range 
Dim rang As Integer 
Dim rang2 As Integer 
Dim cell As Variant 
Dim rang3 As Range 


rang = Worksheets("Plan1").Range("A2").End(xlDown).Row 
Set rng = ActiveSheet.Range("A2:A" & rang) 
Set rang3 = Range("Plan1!$G1:$K1000") 

rang2 = 1 


For Each cell In rng 
rang2 = rang2 + 1 
    If cell.Interior.Color = 65535 Then 

    cell.Offset(0, 1).Formula = "=vlookup(cell,rang3,2,0)" 
    cell.Offset(0, 2).Formula = "=vlookup(cell,rang3,2,0)" 
    cell.Offset(0, 3).Formula = "=vlookup(cell,rang3,2,0)" 
    cell.Offset(0, 4).Formula = "=vlookup(cell,rang3,2,0)" 

    End If 

Next cell 
    End Sub 
+0

在一個側面說明中,我會找到第一行使用單元格匹配的實例,然後使用索引或偏移量來獲得其餘的值,沒有一點查找值4次。 –

回答

1

,只要您把公式,你不能使用你的變量,你需要寫像"=vlookup(" & cell.value & "," & rang3.address & ",2,0)"

另外,forumula查找相同的值,你應該將遞增2?

+0

我試圖做你說的,但是我的公式不能識別查找值。你可以幫我嗎? – Ygor

+0

發生了什麼事,沒有看到數據,很難協助查找:)我會盡我最大的努力:) –

+0

Excel是否給我#NAME?這個單元格是這樣的: = PROCV(AERO DINAMICA EQUIPAMENTOS INDUSTRIAIS LTDA; $ G $ 1:$ K $ 1000; 2; 0) 我的excel是用葡萄牙語,所以procv = vlookup和AERO DINAMICA EQUIPAMENTOS INDUSTRIAIS LTDA是我正在尋找惠特vlookup。 該錯誤告訴我該公式無法識別文本。 我希望你能幫助我瞭解這些信息。謝謝! – Ygor

1

語法只是有點關閉。 VBA語法中引用的變量範圍。既然你想要返回變量元素,你需要將它們連接在一起,這樣代碼將爲你讀取地址。

這是一種方法。

cell.Offset(0, 1).Formula = "=vlookup(" & cell.address & "," & rang3.Parent & "!" & rang3.address & ",2,0)" 
+1

'rng3.Address(1,1,,True)'將自動放置父項。 –