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;
}
См. также
Функции API C, которые можно вызывать только из библиотеки DLL или XLL