VBA在表和复制公式中查找值

时间:2014-08-31 11:54:26

标签: excel excel-vba excel-formula vlookup vba

我有一个两列查找表。第1列是固定的项目清单,第2列有一个公式。

在另一个表中,当有人在说单元格a1中输入数据并且它与我的查找表的第1列中的项目匹配时,我需要将第2列中的相应公式复制并粘贴到单元格b2中。

很多谷歌搜索试图找到一种方法让VLOOKUP复制公式代替单元格值没有返回任何内容所以我认为唯一的方法是通过VBA吗?

1 个答案:

答案 0 :(得分:2)

这个小样本假设数据在列 C D:

Sub Matt()
    Dim r As Range, Tabl As Range
    Set Tabl = Range("C1:C1000")
    Set r = Tabl.Find(What:=Range("A1").Value, After:=Tabl(1))
    Range("B1").Formula = r.Offset(0, 1).Formula
End Sub

A1 中放置一个值并运行宏

修改#1:

此版本将循环播放列 A

Sub Matt_The_Sequel()
    Dim r As Range, Tabl As Range, N As Long
    Set Tabl = Range("C1:C1000")
    N = Cells(Rows.Count, "A").End(xlUp).Row
    For i = 1 To N
        Set r = Tabl.Find(What:=Range("A" & i).Value, After:=Tabl(1))
        Range("B" & i).Formula = r.Offset(0, 1).Formula
    Next i
End Sub

修改#2:

Sub Matt_The_Sequel2()
    Dim r As Range, Tabl As Range, N As Long
    Dim First_Row As Long
    Set Tabl = Range("C1:C1000")
    N = Cells(Rows.Count, "A").End(xlUp).Row

    First_Row = 4


    For i = First_Row To N
        Set r = Tabl.Find(What:=Range("A" & i).Value, After:=Tabl(1))
        Range("B" & i).Formula = r.Offset(0, 1).Formula
    Next i
End Sub