Freigeben über


xlfEvaluate

Gilt für: Excel 2013 | Office 2013 | Visual Studio

Verwendet den Microsoft Excel-Parser und Funktionsauswerter, um jeden Ausdruck auszuwerten, der in eine Arbeitsblattzelle eingegeben werden kann.

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

Parameter

pxFormulaText (xltypeStr)

Die auszuwertende Zeichenfolge. Ein führendes Gleichheitszeichen (=) ist optional. Die Zeichenfolge kann ein beliebiger Text sein, der legal in ein Arbeitsblatt oder eine Makroblattzelle eingegeben werden kann.

Eigenschaftswert/Rückgabewert

Gibt das Ergebnis der Auswertung der Zeichenfolge zurück, bei der es sich um einen der Typen xltypeNum, xltypeStr, xltypeBool, xltypeErr, xltypeNil, xltypeMulti handeln kann.

Hinweise

Die Zeichenfolge darf nur Funktionen enthalten, keine Befehlsentsprechungen. Dies entspricht dem Drücken von F9 über die Bearbeitungsleiste. Wenn xlfEvaluate von einer XLL-Arbeitsblattfunktion aufgerufen wird, die als threadsicher registriert wurde, darf der Ausdruck nur threadsichere Funktionen enthalten.

Die xlfEvaluate-Funktion wird hauptsächlich verwendet, um DLLs das Ermitteln des Werts zu ermöglichen, der einem definierten Namen zugewiesen ist, der sich entweder auf einem Blatt oder einem ausgeblendeten Namen befindet, der in der DLL definiert ist. Beachten Sie, dass in einer DLL/XLL einem Arbeitsblattnamen mindestens ein Ausrufezeichen (!) vorangestellt werden muss, um sicherzustellen, dass er als extern für die DLL interpretiert wird. Weitere Informationen finden Sie unter Auswerten von Namen und anderen Formelausdrücken des Arbeitsblatts.

xlfEvaluate kann nicht verwendet werden, um Verweise auf ein externes Blatt auszuwerten, das nicht geöffnet ist.

Beispiel

In diesem Beispiel wird xlfEvaluate verwendet, um den Text "! B38" zum Inhalt der Zelle B38.

\SAMPLES\EXAMPLE\EXAMPLE.C. Diese Funktion ruft ein Befehlsmakro (xlcAlert) auf und funktioniert nur ordnungsgemäß, wenn sie von einem Makroblatt oder als Makrobefehl aufgerufen wird.

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;
}

Siehe auch