xlCoerce

Область применения: Excel 2013 | Office 2013 | Visual Studio

Преобразует один типXLOPER12XLOPER/ в другой или ищет значения ячеек на листе.

Excel12(xlCoerce, LPXLOPER12 pxRes, 2, LPXLOPER12 pxSource, LPXLOPER12 pxDestType);

Параметры

pxSource

ИсходныйXLOPER12XLOPER/ , который необходимо преобразовать.

pxDestType (xltypeInt)

(Необязательно). Битовая маска результирующего типа, который вы готовы принять. Для указания нескольких возможных типов следует использовать побитовый оператор OR ( | ). Если этот аргумент опущен, ссылки на отдельные ячейки преобразуются в один из типов значений xltypeStr, xltypeNum, xltypeBool, xltypeErr, xltypeNil (если ссылка на ячейку пуста), а ссылки на блоки ячеек преобразуются в xltypeMulti. Это делает xlCoerce наиболее удобным способом поиска значений ячеек.

Значение свойства и возвращаемое значение

Возвращает принуждаемое значение (xltypeStr, xltypeNum, xltypeBool, xltypeErr, xltypeNil или xltypeMulti).

Замечания

XlCoerce не может преобразоваться в xltypeBigData или xltypeFlow или из нее. Передача типа xltypeMissing или xltypeNil в качестве pxDestType эквивалентна пропуску аргумента. В некоторых случаях преобразование может завершиться ошибкой. Например, некоторые строки не могут быть преобразованы в числа, а другие —.

Если массив или многоэлементная ссылка преобразуется в один тип значения, результатом будет значение левой верхней ячейки или элемента массива.

Пример

Следующий код можно найти в \SAMPLES\EXAMPLE\EXAMPLE.C.

Примечание.

Функция xlcAlert неявно пытается преобразовать свой аргумент в строку, чтобы показанный здесь шаг приведения можно было фактически удалить, а xInt можно было передать непосредственно в xlcAlert. Так как xlcAlert является командным макросом, этот код работает правильно только при вызове из листа макросов.

short WINAPI xlCoerceExample(short iVal)
{
   XLOPER12 xStr, xInt, xDestType;
   xInt.xltype = xltypeInt;
   xInt.val.w = iVal;
   xDestType.xltype = xltypeInt;
   xDestType.val.w = xltypeStr;
   Excel12f(xlCoerce, &xStr, 2, (LPXLOPER12)&xInt, (LPXLOPER12)&xDestType);
   Excel12f(xlcAlert, 0, 1, (LPXLOPER12)&xStr);
   Excel12f(xlFree, 0, 1, (LPXLOPER12)&xStr);
   return 1;
}

См. также

xlSet

Функции API C, которые можно вызывать только из библиотеки DLL или XLL