Excel VBA在表中查找值并复制公式

Excel VBA在表中查找值并复制公式,excel,excel-formula,vlookup,vba,Excel,Excel Formula,Vlookup,Vba,我有一个两列查找表。第1列是固定的项目列表,第2列中有一个公式 在另一个表中,当有人在单元格a1中输入数据,并且数据与我的查找表第1列中的项目相匹配时,我需要将第2列中的相应公式复制并粘贴到单元格b2中 很多google搜索试图找到一种方法让VLOOKUP复制公式来代替单元格值,但没有返回任何结果,所以我认为唯一的方法是通过VBA?这个小样本假设数据在C和D列中: Sub Matt() Dim r As Range, Tabl As Range Set Tabl = Range(

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

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


很多google搜索试图找到一种方法让VLOOKUP复制公式来代替单元格值,但没有返回任何结果,所以我认为唯一的方法是通过VBA?

这个小样本假设数据在CD列中:

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
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
A1中放置一个值,然后运行宏

编辑#1:

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
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
此版本将向下循环列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()
    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
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

您想显示公式还是计算结果请尝试
INDIRECT()
我想计算公式的结果,然后尝试将
INDIRECT
VLOOKUP
组合,并向我们显示您的位置这是完美的。但是,最后一个请求,我如何在单元格B2中循环重复,B3等,只要A2、A3等中有条目?对不起,最后一条。。。如果我想抵消开始,例如:我希望循环从A4开始,而不是A1,因为我有两行标题等?顺便谢谢你的帮助!