Vba 在工作簿中列出所有VLookup

Vba 在工作簿中列出所有VLookup,vba,excel,vlookup,Vba,Excel,Vlookup,我有一个很大的Excel文件,里面有很多不同的表格,每个表格都包含很多Vlookup 我想把这个文件和一些链接到它的文件移到一个新文件夹 我更改了宏中的路径,但是有没有办法在所有具有外部链接的工作表中找到所有VLookup?我的意思是,指向其中一个文件的链接我也会移动(因此我应该更改它们的路径) 如果有一种方法可以列出文件中存在的所有VLookup及其所在单元格+正在查看的单元格,那就太好了。以下函数将使用公式收集单元格并返回范围对象 function FindFormulaInSheet(ws

我有一个很大的Excel文件,里面有很多不同的表格,每个表格都包含很多Vlookup

我想把这个文件和一些链接到它的文件移到一个新文件夹

我更改了宏中的路径,但是有没有办法在所有具有外部链接的工作表中找到所有VLookup?我的意思是,指向其中一个文件的链接我也会移动(因此我应该更改它们的路径)


如果有一种方法可以列出文件中存在的所有VLookup及其所在单元格+正在查看的单元格,那就太好了。

以下函数将使用公式收集单元格并返回范围对象

function FindFormulaInSheet(ws As Worksheet, functionName As String) as Range
    Dim formulas As Range     
    Dim c As Range
    For Each c In ws.UsedRange.SpecialCells(xlCellTypeFormulas)
        If InStr(c.Formula, "VLOOKUP") > 0 Then
            If formulas Is Nothing Then
                Set formulas = c
            Else
                Set formulas = Union(formulas, c)
            End If
        End If
    Next c
    set FindFormulaInSheet = formulas
End function
因此,在您的情况下,将其称为示例(将所有VLOOKUP标记为黄色):


当然,你可以用你想要的范围做任何事情,而不是将其标记为黄色。

查看此链接:谢谢……它实际上让我意识到,我可以简单地使用“查找和替换”并对其进行排序是的,我实际上可以做
r.Formula=“MYNEWPATH”
…谢谢托马斯
dim r as Range
set r = FindFormulaInSheet (activeSheet, "VLOOKUP")
r.interior.Color = vbYellow