Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Excel 2013 | Office 2013 | Visual Studio
Очень быстро помещает значения констант в ячейки или диапазоны. Дополнительные сведения см. в разделе XlSet and Workbooks with Array Formulas статьи Известные проблемы в разработке XLL для Excel.
Excel12(xlSet, LPXLOPER12 pxRes, 2, LPXLOPER12 pxReference, LPXLOPER pxValue);
Параметры
pxReference (xltypeRef или xltypeSRef)
Прямоугольная ссылка, описывающая целевую ячейку или ячейки. Ссылка должна описывать смежные ячейки, поэтому в xltypeRefval.mref.lpmref->count должно быть задано значение 1.
pxValue
Значение или значения, помещаемые в ячейку или ячейки. Дополнительные сведения см. в разделе "Примечания".
Замечания
Аргумент pxValue
pxValue может быть значением или массивом. Если это значение, этим значением заполняется весь диапазон назначения. Если это массив (xltypeMulti), элементы массива помещаются в соответствующие расположения в прямоугольнике.
Если для второго аргумента используется горизонтальный массив, он дублируется вниз, чтобы заполнить весь прямоугольник. Если используется вертикальный массив, он дублируется вправо для заполнения всего прямоугольника. Если вы используете прямоугольный массив и он слишком мал для прямоугольного диапазона, в который вы хотите его поместить, этот диапазон заполняется #N/С.
Если целевой диапазон меньше исходного массива, значения копируются в до пределов целевого диапазона, а дополнительные данные игнорируются.
Чтобы очистить элемент прямоугольника назначения, используйте элемент массива типа xltypeNil в исходном массиве. Чтобы очистить весь прямоугольник назначения, опустите второй аргумент.
Ограничения
Невозможно отменить xlSet . Кроме того, он удаляет все сведения об отмене, которые могли быть доступны ранее.
XlSet может помещать в ячейки только константы, а не формулы.
XlSet ведет себя как функция, эквивалентная команде класса 3; т. е. она доступна только внутри библиотеки DLL, если она вызывается из объекта, макроса, меню, панели инструментов, сочетания клавиш или кнопки Выполнить в диалоговом окне Макрос (доступ к ней осуществляется на вкладке Вид на ленте, начиная с Excel 2007, и в меню Сервис в более ранних версиях).
Пример
В следующем примере B205:B206 заполняется значением, переданным из макроса. Этот пример командной функции требует аргумента и будет работать только при вызове из листа макросов XLM или из модуля VBA с помощью метода Application.Run .
\SAMPLES\EXAMPLE\EXAMPLE.C
short WINAPI xlSetExample(short int iVal)
{
XLOPER12 xRef, xValue;
xRef.xltype = xltypeSRef;
xRef.val.sref.count = 1;
xRef.val.sref.ref.rwFirst = 204;
xRef.val.sref.ref.rwLast = 205;
xRef.val.sref.ref.colFirst = 1;
xRef.val.sref.ref.colLast = 1;
xValue.xltype = xltypeInt;
xValue.val.w = iVal;
Excel12(xlSet, 0, 2, (LPXLOPER12)&xRef, (LPXLOPER12)&xValue);
return 1;
}