搜索公式的字符串

搜索公式的字符串

是否有类似于搜索的功能,可以在公式中搜索,而不是显示的单元格内容?例如能够在 中找到“myWorksheet” ='myWorksheet'!$A$1。我需要一个实际的公式,而不是使用显示公式。

我可以很容易地在 VBA 中创建一个,但很好奇是否有一个现成的,而我的 Google-Fu 让我失望了。

答案1

没有 Excel 工作表函数可以做到这一点。Find() 和 Search() 都将评估单元格的值,而不是其底层公式。

查找/替换命令(Ctrl-F 或 Ctrl-H)有在公式中搜索的选项,但它只会找到包含搜索词的单元格,而不是单元格内搜索词的位置。

答案2

由于 teylyn 已确认不存在内置函数,因此我创建了自己的函数,我将在此分享,以防有人使用它。将其放在启用宏的工作簿的代码模块中,并以与搜索相同的方式使用它。如果单元格公式有,它将搜索该公式;如果没有,它将搜索单元格值;如果未找到匹配项,则返回 -1:

Function SearchFormula(rng As Range, val As String) As Integer

Dim f As String
Dim pos As Integer

f = rng.Formula

If f <> "" Then
    pos = InStr(1, f, val)
    If pos = 0 Then pos = -1
Else
    pos = -1
End If

SearchFormula = pos

End Function

相关内容