xlSet

Область применения: 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;
}

См. также