4

Есть ли функция, похожая на Поиск, которая может искать в формулах, а не в отображаемом содержимом ячейки? например, возможность найти «myWorksheet» внутри ='myWorksheet'!$A$1 . Мне нужна фактическая формула, а не использование Показать формулы.

Я могу сделать его в VBA достаточно легко, но мне любопытно узнать, есть ли один готовый, и мой Google-Fu подвел меня.

2 ответа2

3

Там нет функции листа Excel, которая делает это. И Find(), и Search() будут оценивать значение ячейки, а не ее основную формулу.

Команда «Найти / Заменить» (Ctrl-F или Ctrl-H) имеет возможность поиска в формулах, но она найдет только ячейку с поисковым термином, а не позицию поискового термина в ячейке.

2

Поскольку Тейлин подтвердил, что встроенной функции не существует, я создал свою собственную, которой я поделюсь здесь, если она пригодится кому-либо. Поместите его в модуль кода рабочей книги с макросами и используйте его так же, как и в Search. Он будет искать формулу ячейки, если она есть, или ячейку, если нет, и будет возвращать -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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .