Страницы: 1
RSS
Как перехватить ошибку в формуле в коде VBA с помощью WorksheetFunction.IfError?
 
Здравствуйте!
Просьба помочь с написанием формулы в VBA.

Есть формула:
Код
=ЕСЛИОШИБКА(ЕСЛИ(ПОИСК("@";A1)>1;1;0);0)
Что не так?
Код
Function SOD(stroka, slovo)
SOD = WorksheetFunction.IfError(WorksheetFunction.If(WorksheetFunction.Search(slovo, stroka) > 1, 1, 0), 0)
End Function

Пробовал добавить Application - тоже самое...
Спасибо.
 
С помощью "WorksheetFunction.IfError" нельзя перехватить ошибку, возникающую в коде VBA.
У объекта "WorksheetFunction" нет функции "If".
Код
Function SOD(stroka, slovo)
    On Error Resume Next
    SOD = WorksheetFunction.Search(slovo, stroka)
    If Err Then
        SOD = 0
    ElseIf SOD > 1 Then
        SOD = 1
    Else
        SOD = 0
    End If
    On Error GoTo 0
End Function
Изменено: Karataev - 16.03.2017 16:53:48
 
Цитата
Karataev написал:
WorksheetFunction.if
И это тоже в обычный if или если хочется то
Код
SOD=iif(WorksheetFunction.Search(slovo, stroka) > 1, 1, 0)
а остальное как Karataev, написал
Изменено: БМВ - 16.03.2017 17:08:11
По вопросам из тем форума, личку не читаю.
 
Могу предложить такую тему: Как перехватить ошибку в формуле в коде VBA с помощью WorksheetFunction.IfError?
 
stevie44,  Karataev заслужил от Вас спасибо.
 
Спасибо большое!!!)
Karataev и БМВ, и тот и другой вариант мне подошли.
Только в варианте 1: ElseIf SOD > 1 Then изменил на ElseIf SOD >= 1 Then
vikttur, запрос был не поиграться, а при нахождении слова или части слова в ячейки, функция возвращает 1 или 0 (то есть ИСТИНА и ЛОЖЬ).
 
Цитата
stevie44 написал: запрос был не поиграться,
Вот и нужно было САМОСТОЯТЕЛЬНО обозначить проблему в названии темы.
Страницы: 1
Читают тему
Наверх