Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [VBA] пользовательская функция (параметры)


Автор: devyshko 16.11.2008, 19:18
Всем привет!

Есть стандартная функция в экселе "заменить", которой передаётся 4 параметра. И если написать вот так:
 =ЗАМЕНИТЬ(123;3;;456)     то она вполне нормально выполнится, как будто третий параметр равен нулю. Вот я пишу аналогичную функцию и не знаю, как обработать такую ситуацию ((

Спасибо! smile

Автор: Akina 16.11.2008, 21:20
Код

Public Function MyFunction(Arg1 As Integer,Arg2 As Integer,Optional Arg3 As Integer = 0, Optional Arg4 As Integer = 0) As Integer

Автор: devyshko 16.11.2008, 21:40
так писать мне нельзя, потому что, тогда два последних параметра вообще можно будет не указывать.

Если написать вот так =ЗАМЕНИТЬ(123;3;;456) то, как я уже писала, третий параметр = 0
а вот если написать вот так =ЗАМЕНИТЬ(123;3;456) то выдаёт ошибку, что слишком мало параметров

так же нужно сделать и мне в моей функции

Автор: Akina 16.11.2008, 22:21
Код

Public Function MyFunction(Arg1 As Integer, Arg2 As Integer, Arg3 As Variant, Arg4 As Integer) As Integer
If IsMissing(Arg3) Then
    MyFunction = 0
Else
    MyFunction = Val(Arg3)
End If
End Function
Аргумент, который пропускается, ОБЯЗАН быть Variant.

Автор: devyshko 16.11.2008, 22:40
Спасибо!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)