xlUDF

适用于:Excel 2013 | Office 2013 | Visual Studio

(UDF) 调用用户定义的函数。 此函数允许 DLL 调用Visual Basic for Applications (VBA) 用户定义的函数、XLM 宏语言函数和其他外接程序中包含的已注册函数。

Excel12(xlUDF, LPXLOPER12 pxRes, int iCount, LPXLOPER12 pxFnRef,
LPXLOPER12 pxArg1, ...);

参数

pxFnRef (xltypeRefxltypeSRefxltypeStrxltypeNum)

要调用的函数的引用。 这可以是宏工作表单元格引用、以字符串形式表示的函数的注册名称,也可以是函数的寄存器 ID。 对于使用 xlfRegisterREGISTER 注册且提供 的参数 pxFunctionText 的 XLL 外接程序函数,可以使用 xlfEvaluate 查找名称来获取 ID。

pxArg1, ...

用户定义的函数的零个或多个参数。 在 Excel 2007 之前的版本中调用此函数时,可传递的其他参数的最大数目为 29,即包括 pxFnRef 在内的 30 个。 从 Excel 2007 开始,此限制将提高到 254,包括 pxFnRef 在内的 255。

返回值

返回用户定义的函数返回的任何值。

示例

以下示例在 BOOK1.XLS 中的工作表 Macro1 上运行 TestMacro 。 确保宏位于名为 Macro1 的工作表上。

\SAMPLES\EXAMPLE\EXAMPLE.C

short WINAPI xlUDFExample(void)
{       
   XLOPER12 xMacroName, xMacroRef, xRes;
   xMacroName.xltype = xltypeStr;
   xMacroName.val.str = L"\044[BOOK1.XLSX]Macro1!TestMacro";
   Excel12(xlfEvaluate, &xMacroRef, 1, (LPXLOPER12)&xMacroName);
   Excel12(xlUDF, &xRes, 1, (LPXLOPER12)&xMacroRef);
   return 1;
}

另请参阅