適用於:Excel 2013 |Office 2013 |Visual Studio
使用 Microsoft Excel 剖析器和函式評估工具來評估可在工作表單元格中輸入的任何表達式。
Excel12(xlfEvaluate, LPXLOPER12 pxRes, 1, LPXLOPER12 pxFormulaText);
參數
pxFormulaText (xltypeStr)
要評估的字串。 前置等號 (=) 是選擇性的。 字串可以是任何可合法輸入工作表或巨集工作表單元格的文字。
屬性值/傳回值
傳回評估字串的結果,這些字串可以是 xltypeNum、 xltypeStr、 xltypeBool、 xltypeErr、 xltypeNil、 xltypeMulti 的任何類型。
註解
字串只能包含函式,不能包含命令對等專案。 這相當於從公式列按 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;
}