xlfEvaluate

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

使用 Microsoft Excel 分析器和函数计算器计算可在工作表单元格中输入的任何表达式。

Excel12(xlfEvaluate, LPXLOPER12 pxRes, 1, LPXLOPER12 pxFormulaText);

参数

pxFormulaText (xltypeStr)

要计算的字符串。 前导等号 (=) 是可选的。 字符串可以是可以合法输入到工作表或宏工作表单元格中的任何文本。

属性值/返回值

返回计算字符串的结果,该字符串可以是 xltypeNumxltypeStrxltypeBoolxltypeErrxltypeNilxltypeMulti 的任何类型。

备注

字符串只能包含函数,不能包含命令等效项。 它等效于从编辑栏中按 F9 。 如果从已注册为线程安全的 XLL 工作表函数调用 xlfEvaluate ,则表达式必须仅包含线程安全的函数。

xlfEvaluate 函数的主要用途是允许 DLL 找出分配给工作表上定义的名称或 DLL 中定义的隐藏名称的值。 请注意,在 DLL/XLL 中,工作表名称必须至少以感叹号 (!) 为前缀,以确保它被解释为 DLL 的外部。 有关详细信息,请参阅 评估名称和其他工作表公式表达式

xlfEvaluate 不能用于计算对未打开的外部工作表的引用。

示例

此示例使用 xlfEvaluate 强制文本“!B38“到单元格 B38 的内容。

\SAMPLES\EXAMPLE\EXAMPLE.C. 此函数 (xlcAlert) 调用命令宏,并且仅在从宏表或作为宏命令调用时才正常工作。

short WINAPI EvaluateExample(void)
{
    XLOPER12 xFormulaText, xRes, xRes2, xInt;
    xFormulaText.xltype = xltypeStr;
    xFormulaText.val.str = L"\004!B38";
    Excel12(xlfEvaluate, &xRes, 1, (LPXLOPER12)&xFormulaText);
    xInt.xltype = xltypeInt;
    xInt.val.w = 2;
    Excel12(xlcAlert, &xRes2, 2, (LPXLOPER12)&xRes, (LPXLOPER12)&xInt);
    Excel12(xlFree, 0, 1, (LPXLOPER12)&xRes);
    Excel12(xlFree, 0, 1, (LPXLOPER12)&xRes2);
    return 1;
}

另请参阅