我有一个包含大量不同工作表的大型Excel文件,每个工作表都包含大量的vlookup。
我想将此文件和链接到其中的一些文件移动到新文件夹中。
我更改了宏中的路径,但有没有办法在所有具有外部链接的工作表中发现所有vlookup?我的意思是通过这个链接到其中一个文件我也会移动(因此我应该改变它们的路径)。
如果有办法列出文件中存在的所有Vlookup以及它们所在的单元格+它们正在查看的单元格,那就太棒了。
答案 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
当然,您可以做任何想要范围的事情,而不是将其标记为黄色。