Чтобы уточнить ответ Мартина.
Невозможно узнать, содержит ли ячейка формулу, используя формулы Excel.
Вы должны определить UDF (пользовательская функция). Учебник здесь. .Из руководства:
- Откройте новую книгу.
- Войдите в VBA (нажмите Alt + F11)
- Вставьте новый модуль (Вставить> Модуль)
- Копирование и вставка примеров пользовательских функций Excel
- Выход из VBA (нажмите Alt + Q)
- Используйте функции (они появятся в диалоговом окне «Вставить функцию»,Shift + F3, в категории «Определено пользователем»)
Ваш UDF будет выглядеть примерно так:
Public Function isformula(rng As Range) As Variant()
Dim aryIn() As Variant
Dim a As Variant
Dim i As Integer, j As Integer
Dim temp() As Variant
aryIn = rng.Value
ReDim temp(LBound(aryIn) To UBound(aryIn), _
LBound(aryIn, 2) To UBound(aryIn, 2))
For i = LBound(aryIn) To UBound(aryIn)
For j = LBound(aryIn, 2) To UBound(aryIn, 2)
If (Left(rng(i, j).Formula, 1) = "=") Then
temp(i, j) = True
Else
temp(i, j) = False
End If
Next j
Next i
isformula = temp()
End Function
Тогда вы можете использовать его в своем коде.Примерно так:
{=SUM(IF(NOT(isformula(A1:A6)),A1:A6,0))}
Где фигурные скобки {} обозначают формулу ARRAY (вводится с помощью Ctrl-Shift-Enter)
HTH!