XL97: Error Using Evaluate and User-Defined Add-In Function (168238)



The information in this article applies to:

  • Microsoft Excel 97 for Windows

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:
  1. Start the Visual Basic Editor, (press ALT+F11).
  2. On the Insert menu, click Module.
  3. In the Code window for the module, type the following procedure:
          Sub Example()
    
              MsgBox Evaluate("f(1)") + Evaluate("f(1)")
    
          End Sub
    						
  4. 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

REFERENCES

For more information about the Evaluate method, click the Office Assistant while in the Microsoft Visual Basic Editor, type Evaluate Method click Search, and then click to view "Evaluate Method."

NOTE: If the Assistant is hidden, click the Office Assistant button on the Standard toolbar. If Microsoft Help is not installed on your computer, please see the following article in the Microsoft Knowledge Base:

120802 Office: How to Add/Remove a Single Office Program or Component


Modification Type:MajorLast Reviewed:10/22/2000
Keywords:kberrmsg KB168238