Можно ли вызвать функцию, указав, какими должны быть именованные параметры?
Так, например, если у вас есть
Public function tmp(optional Byref a as integer=2, optional Byref b as integer=10)
Tmp=a*b
End function
Я хочу использовать вышеуказанное с помощью tmp(b=5). Надеюсь, кто-то может помочь.
Это работает, если функция вызывается из другой функции или подпрограммы. Но можно ли сделать то же самое, когда функция, которую я вызвал из ячейки?
вы будете называть его так же, как описано Т.М. Один или оба ваших аргумента будут ссылкой на ячейку. пример: в ячейке B2 поставьте =tmp(,A2)
. Если значение A2 равно 76, то ответ в B2 будет 152. И ваши аргументы должны быть ByVal
.
Если я правильно понимаю ваш вопрос, вы хотите передать только аргумент b:
Debug.Print tmp(, 5) ' results in 2 * 5 = 10
или просто, как указано в комментарии @Guest
Debug.Print tmp(b:=5)
также это: Debug.Print tmp(b:=5)
Спасибо за ответ. Но можно ли сделать то же самое при вызове функции из ячейки? Ваше первое предложение I достаточно простое, когда количество параметров ограничено, но по мере роста сложности функции это быстро станет головной болью.
Пожалуйста. - Что касается вашего вопроса: вы можете передать аргумент диапазона с двумя столбцами, определяющими только одну или несколько переменных в первом столбце и требуемые значения во втором. Чтобы получить дополнительные идеи, вам нужно будет определить, как вы хотите настроить свою функцию - возможно, стоит задать новый вопрос с некоторыми подробностями :-) @RasmusAndersen
Попробуйте:
tmp(b:=5)