在一个循环中查找复制信息

我试图做一个查找循环来search列表中的值,并在4个细胞中返回它们,但我的公式不工作,它只是返回单元格中的variables名称。

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 

当你把公式写入,你不能使用你的variables,你需要写"=vlookup(" & cell.value & "," & rang3.address & ",2,0)"

另外forumula查找相同的价值,你应该增加2?

语法只是一点点。 VBA语法中引用的variables范围。 既然你想返回variables元素,你需要将它们连接在一起,这样代码将为你读取地址。

这是做到这一点的一种方法。

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