Нужна помощь по созданию пользовательской функции для excel 2003
Привет ребята,
Сегодня я прошу вашей помощи.
Мне нужно создать пользовательскую функцию в VBA6 для Excel 2003.
Моя проблема в том, что мне нужно передать 2 списка того же размера, что и параметры 3 и 4. У меня есть этот код:
function MyFunc(P1, P2, P3 As Range, P4 As Range) As Long ...
Из камеры я могу назвать это как
=MyFunc("Alpha", 123, A1:A3, {1,2,3})
- пока все идет хорошо.Проблема в том, что мне также нужны списки как
{2, B1*2, C1}
, и там я застрял. Мои списки должны быть смесью ссылок на ячейки, числовых констант и формул.Я не могу использовать ячейки для построения списков в виде диапазонов ячеек.Как бы вы поступили ?
Должен ли я использовать ParamArray ?
Что я уже пробовал:
Погуглил много, но ничего интересного не нашел.
Maciej Los
Какой список должен быть {2, B1*2, C1}
- первый или второй? Почему первым аргументом функции является строковый тип данных, если функция должна возвращать длинный тип данных?
Всегда ли количество элементов для lis1 и list2 одинаково?
Patrice T
Нашел решение с помощью ParamArray.
Параметры 1 и 2-это то, что они есть, потому что это необходимо, и функция возвращает числовое значение, поэтому длинный тип данных.
Maciej Los
Итак, если вы хотите передать 2 списка (функция принимает только один аргумент ParamArray), то вы должны знать количество аргументов и порядок их следования. Я прав? Вас интересует другое решение?
Patrice T
Нет, спасибо, это решение удовлетворит все мои потребности.
Maciej Los
Я бы предложил поделиться вашим решением из-за того, что кто-то другой может столкнуться с той же проблемой... Затем отметьте его как ответ, чтобы удалить свой вопрос из списка без ответа.
Patrice T
Мое решение довольно специфично.
Maciej Los
Согласитесь, но вам не обязательно публиковать всю функцию целиком. Вы должны объяснить, как обойти такую проблему.