Microsoft KB Archive/168238

= XL97: Error Using Evaluate and User-Defined Add-In Function =

Article ID: 168238

Article Last Modified on 10/22/2000

-

APPLIES TO


 * Microsoft Excel 97 Standard Edition

-



This article was previously published under Q168238



SYMPTOMS
In Microsoft Excel 97, when you use the Evaluate method in Visual Basic for Applications to retrieve the result of an expression, you may receive the following error message:

This program has performed an illegal operation and will be shut down.

If the problem persists, contact the program vendor.

If you click Details, you receive an error message similar to the following

EXCEL caused an invalid page fault in module EXCEL.EXE at 014f:301b7f65.

and Microsoft Excel quits.



CAUSE
This error message may appear when the following conditions are true:
 * You use multiple calls to a user-defined function in a mathematical expression (for example, "f(1)+f(2)"). -and-


 * The user-defined function exists in a workbook you saved as an add-in (.xla) file.



WORKAROUND
To prevent this problem from occurring, verify that the custom function is not in an add-in file, or break up the mathematical expression text string so that the Evaluate method is executed once for each instance of a custom function.

Microsoft provides examples of Visual Basic for Applications procedures for illustration only, without warranty either expressed or implied, including, but not limited to the implied warranties of merchantability and/or fitness for a particular purpose. The Visual Basic procedures in this article are provided 'as is' and Microsoft does not guarantee that they can be used in all situations. While Microsoft support professionals can help explain the functionality of a particular macro, they will not modify these examples to provide added functionality, nor will they help you construct macros to meet your specific needs. If you have limited programming experience, you may want to consult one of the Microsoft Solution Providers. Solution Providers offer a wide range of fee-based services, including creating custom macros. For more information about Microsoft Solution Providers, call Microsoft Customer Information Service at (800) 426-9400.

Example
The following example macro uses the Evaluate method with the following string: f(1)+f(1) NOTE: This example assumes that a user-defined function called f exists in an add-in file.

To use the Evaluate method with the example text string, do the following:  Start the Visual Basic Editor, (press ALT+F11). On the Insert menu, click Module.  In the Code window for the module, type the following procedure: Sub Example

MsgBox Evaluate("f(1)") + Evaluate("f(1)")

End Sub  Run the macro.

a message box with a result appears. The results vary depending on how the user-defined function (for example, the f function) is coded.



STATUS
Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. This problem no longer occurs in Microsoft Excel 2000.



MORE INFORMATION
In earlier versions of Microsoft Excel, you receive a Type Mismatch error message if you attempt to evaluate this type of expression for a custom function regardless of whether it is in an add-in file.

For additional information, please see the following articles in the Microsoft Knowledge Base:

153760 XL: Error with EVALUATE with More Than One Custom Function

108517 XL: Error Getting the Value of a Name in Visual Basic

<div class="references_section">