Получение определенных размеров выходного массива вызывающей стороны в XLL

Я изменяю существующий XLL, написанный на C++. Исходный код всегда создает массив из 1 столбца в качестве вывода. Я заинтересован в том, чтобы сделать вывод более гибким (скажем, в виде строки ячеек, а не столбца ячеек). При использовании этой функции массива в Excel она вводится как функция массива (т. е. пользователь вводит ее, чтобы покрыть массив ячеек, а не только одну ячейку).

Я знаю, как вернуть массив определенных измерений. Но чего я не знаю, так это того, как в коде C++ я могу получить размеры массива ячеек, которые пользователь определил при вызове этой функции? Если у меня есть эта информация, я могу затем заполнить по строкам или по столбцам, в зависимости от того, как пользователь определил свой принимающий массив.

Спасибо!


person adt_Jeff    schedule 16.05.2014    source источник


Ответы (1)


Вы хотите использовать функцию обратного вызова xlfCaller.

Пример есть в документации XLW:

http://sourceforge.net/p/xlw/mailman/xlw-users/?viewmonth=200808

Но вам нужно будет добавить проверку безопасности (как предлагается в комментариях к потоку), потому что ваш вызов функции будет вызываться из других мест (например, VBA, мастер функций).

person JonT    schedule 03.09.2014