VBA查找并替换为公式(难以更新行)

时间:2019-06-28 00:37:54

标签: excel vba

我需要运行findreplace,其中替换项是公式。我不知道如何获取公式来引用要替换的单元格的行号。有人可以帮助我了解其工作原理吗?

查找值是

  

发布未知的日期

,替换值为

=VLOOKUP(A1,'VideoIndex.xlsx'!YouTube_ALLDATA,2,FALSE)

A1是更改每一行的值。

2 个答案:

答案 0 :(得分:0)

您的Find() method的妙处在于它返回一个 Range Object 。范围对象具有有用的.Row property

Dim Rng As Range
Set Rng = Cells.Find("NEED DATE FOR PUBLISHING UNKNOWN")

您已经设置了Rng,现在可以使用row属性。

rng.Formula = "=VLOOKUP(A" & Rng.Row & ",'VideoIndex.xlsx'!YouTube_ALLDATA,2,FALSE)"

答案 1 :(得分:0)

据我所知,您无法使用Excel公式执行此操作。但是可以使用VBA。

此代码将为您完成此任务。 Link

的示例
Sub rep()

Dim c As Range
Dim firstaddress As Range

With ActiveSheet.UsedRange
    Set c = .Find("NEED DATE FOR PUBLISHING UNKNOWN", LookIn:=xlValues)
    If Not c Is Nothing Then
        firstaddress = c.Address
        Do
            c.Value = "=VLOOKUP(A" & c.Row & ",'VideoIndex.xlsx'!YouTube_ALLDATA,2,FALSE)"
            Set c = .FindNext(c)
        Loop While Not c Is Nothing
    End If
End With

End Sub

将此代码粘贴到任何模块中,并在要查看更改的工作表激活后运行宏。