xlCoerce
Aplica-se a: Excel 2013 | Office 2013 | Visual Studio
Converte um tipo deXLOPER12XLOPER/ em outro ou pesquisa valores de célula em uma planilha.
Excel12(xlCoerce, LPXLOPER12 pxRes, 2, LPXLOPER12 pxSource, LPXLOPER12 pxDestType);
Parâmetros
pxSource
O XLOPER/ de origemXLOPER12 que precisa ser convertido.
pxDestType (xltypeInt)
(Opcional). Uma máscara de bit dos tipos resultantes que você está disposto a aceitar. Você deve usar o operador OR bit a bit ( | ) para especificar vários tipos possíveis. Se esse argumento for omitido, as referências a células individuais serão convertidas em um dos tipos de valor xltypeStr, xltypeNum, xltypeBool, xltypeErr, xltypeNil (se a célula referida estiver vazia) e as referências a blocos de células forem convertidas em xltypeMulti. Isso torna xlCoerce a maneira mais conveniente de pesquisar valores de célula.
Valor de propriedade/Valor de retorno
Retorna o valor coagido (xltypeStr, xltypeNum, xltypeBool, xltypeErr, xltypeNil ou xltypeMulti).
Comentários
xlCoerce não pode converter para ou de xltypeBigData ou xltypeFlow. Passar um tipo xltypeMissing ou xltypeNil como pxDestType é equivalente a omitir o argumento. A conversão pode falhar em alguns casos. Por exemplo, algumas cadeias de caracteres não podem ser convertidas em números, enquanto outras podem.
Se uma matriz ou uma referência de várias células for convertida em um único tipo de valor, o resultado será o valor da célula superior esquerda ou do elemento de matriz.
Exemplo
O código a seguir pode ser encontrado em \SAMPLES\EXAMPLE\EXAMPLE.C
.
Observação
A função xlcAlert tenta implicitamente converter seu argumento em uma cadeia de caracteres para que a etapa de coerção mostrada aqui possa de fato ser removida e xInt possa ser passada diretamente para xlcAlert. Como xlcAlert é uma macro de comando, esse código só funciona corretamente quando chamado de uma planilha de macro.
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;
}
Confira também
Funções da API de C que podem ser chamadas apenas de uma DLL ou XLL