列出工作簿中的所有VLookup

时间:2017-09-21 10:45:07

标签: excel vba excel-vba vlookup

我有一个包含大量不同工作表的大型Excel文件,每个工作表都包含大量的vlookup。

我想将此文件和链接到其中的一些文件移动到新文件夹中。

我更改了宏中的路径,但有没有办法在所有具有外部链接的工作表中发现所有vlookup?我的意思是通过这个链接到其中一个文件我也会移动(因此我应该改变它们的路径)。

如果有办法列出文件中存在的所有Vlookup以及它们所在的单元格+它们正在查看的单元格,那就太棒了。

1 个答案:

答案 0 :(得分:2)

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

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标记为黄色):

dim r as Range
set r = FindFormulaInSheet (activeSheet, "VLOOKUP")
r.interior.Color = vbYellow

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