Нашел пользовательскую функцию получения формулы:
Function IsFormula(ByVal Cell As Range, Optional ShowFormula As Boolean = False)
'Application.Volatile True
If ShowFormula Then
If Cell.HasFormula Then
IsFormula = "Формула: " & IIf(Cell.HasArray, "{" & Cell.FormulaLocal & "}", Cell.FormulaLocal)
Else
IsFormula = "Значение: " & Cell.Value
End If
Else
IsFormula = Cell.HasFormula
End If
End Function
Данная функция имеет два аргумента:
Cell — ссылка на проверяемую ячейку;
ShowFormula — необязательный аргумент. Если присвоено значение ЛОЖЬ или 0 или опущен(не указан) — то функция вернет значение ИСТИНА или ЛОЖЬ(в зависимости от наличия или отсутствия формулы в ячейке). Если присвоено значение ИСТИНА или 1, то в функция вернет не просто ИСТИНА или ЛОЖЬ, а еще и текст самой формулы.
Чтобы при изменении формулы в целевой ячейке сразу же изменялось её отображение в ячейке с данной функцией необходимо убрать апостраф(‘) перед Application.Volatile True
Function IsFormula(ByVal Cell As Range, Optional ShowFormula As Boolean = False)
'Application.Volatile True
If ShowFormula Then
If Cell.HasFormula Then
IsFormula = "Формула: " & IIf(Cell.HasArray, "{" & Cell.FormulaLocal & "}", Cell.FormulaLocal)
Else
IsFormula = "Значение: " & Cell.Value
End If
Else
IsFormula = Cell.HasFormula
End If
End Function
Данная функция имеет два аргумента:
Cell — ссылка на проверяемую ячейку;
ShowFormula — необязательный аргумент. Если присвоено значение ЛОЖЬ или 0 или опущен(не указан) — то функция вернет значение ИСТИНА или ЛОЖЬ(в зависимости от наличия или отсутствия формулы в ячейке). Если присвоено значение ИСТИНА или 1, то в функция вернет не просто ИСТИНА или ЛОЖЬ, а еще и текст самой формулы.
Чтобы при изменении формулы в целевой ячейке сразу же изменялось её отображение в ячейке с данной функцией необходимо убрать апостраф(‘) перед Application.Volatile True