VBA复制粘贴公式搜索

时间:2015-05-14 21:32:53

标签: excel vba excel-vba

以下代码来自上一个问题

我的问题 - 如果查找和搜索值是公式,我该如何使用? ..我尝试过更改.Value2,但似乎没有用。

VBA Copy Paste string search

With Sheets("SheetName") ' Change to your actual sheet name
Dim r As Range: Set r = .Range("C10:G10").Find(.Range("A10").Value2, , , xlWhole)
If Not r Is Nothing Then r.Offset(4, 0).Resize(5).Value2 = .Range("A14:A18").Value2

结束

enter image description here

1 个答案:

答案 0 :(得分:2)

如果您要查找公式的结果,则需要为LookIn参数指定xlValues。如果为空,则默认为xlFormulas。例如,要查找在Sheet“foo”上产生“Bar”(即=CONCATENATE("B","a","r"))的任何公式,您可以这样做:

With ActiveWorkbook.Sheets("Foo")
    Dim r As Range
    Set r = .UsedRange.Find("Bar", , xlValues, xlWhole)
    If Not r Is Nothing Then
        Debug.Print r.Address
    End If
End With

如果要查找包含实际公式的工作表,可以完全省略LookIn参数或明确指定它:

With ActiveWorkbook.Sheets("Foo")
    Dim r As Range
    Set r = .UsedRange.Find("=CONCATENATE(""B"",""a"",""r"")", , _
                            xlFormulas, xlWhole)
    If Not r Is Nothing Then
        Debug.Print r.Address
    End If
End With