Здравствуйте!
Подскажите отличие
Function TTT(p1, p2, p3) If p1 = "" Then TTT = "444" Else TTT = "555" End Function И Function TTT(p1, p2, p3) If p1 <> "" Then TTT = "444" Else TTT = "555" End Function
В первом случае при любом р1 всегда 555
Во втором - всё как книга пишет.
Главное чтобы условия выполнялись - не принципиально какие
Спасибо!
Переменные должны быть определены, иначе им может быть присвоет статус объекта или variant, а объекты математическими операторами (=, <>) не сравнивают. Пример
Private Function TTT(p1 As String, p2 As Variant, Optional p3 As Long) If p1 = "" Then TTT = "444" Else TTT = "555" End If End Function
Поля пропущены, поэтому и идет ошибка. Для контроля используют nz или On Error GoTo
Private Function TTT(p1 As Variant, p2 As Variant, Optional p3 As Long) As Variant On Error GoTo 999 If Nz(p1, "") = "" Then TTT = "444" Else TTT = "555" End If Exit Function 999: TTT = "0" End Function