Функция Vba оценивается по именованным параметрам

Можно ли вызвать функцию, указав, какими должны быть именованные параметры?

Так, например, если у вас есть

Public function tmp(optional Byref a as integer=2, optional Byref b as integer=10)

    Tmp=a*b

End function 

Я хочу использовать вышеуказанное с помощью tmp(b=5). Надеюсь, кто-то может помочь.

Попробуйте: tmp(b:=5)

Guest 27.05.2019 21:46

Это работает, если функция вызывается из другой функции или подпрограммы. Но можно ли сделать то же самое, когда функция, которую я вызвал из ячейки?

Rasmus Andersen 27.05.2019 21:55

вы будете называть его так же, как описано Т.М. Один или оба ваших аргумента будут ссылкой на ячейку. пример: в ячейке B2 поставьте =tmp(,A2). Если значение A2 равно 76, то ответ в B2 будет 152. И ваши аргументы должны быть ByVal.

Guest 27.05.2019 22:03
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
3
253
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если я правильно понимаю ваш вопрос, вы хотите передать только аргумент b:

Debug.Print tmp(, 5)     ' results in 2 * 5 = 10

или просто, как указано в комментарии @Guest

Debug.Print tmp(b:=5)

также это: Debug.Print tmp(b:=5)

horst 27.05.2019 21:51

Спасибо за ответ. Но можно ли сделать то же самое при вызове функции из ячейки? Ваше первое предложение I достаточно простое, когда количество параметров ограничено, но по мере роста сложности функции это быстро станет головной болью.

Rasmus Andersen 27.05.2019 22:00

Пожалуйста. - Что касается вашего вопроса: вы можете передать аргумент диапазона с двумя столбцами, определяющими только одну или несколько переменных в первом столбце и требуемые значения во втором. Чтобы получить дополнительные идеи, вам нужно будет определить, как вы хотите настроить свою функцию - возможно, стоит задать новый вопрос с некоторыми подробностями :-) @RasmusAndersen

T.M. 28.05.2019 20:35

Другие вопросы по теме