2016-07-06 32 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)'将自动放置父项。 –