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

Last reviewed: May 8, 1997
Article ID: Q168238
The information in this article applies to:
  • Microsoft Excel 97 for Windows

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 engineers 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. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

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:

   ARTICLE-ID: Q153760
   TITLE     : XL: Error with EVALUATE with More Than One Custom Function

   ARTICLE-ID: Q108517
   TITLE     : 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:

   ARTICLE-ID: Q120802
   TITLE     : Office: How to Add/Remove a Single Office
               Program or Component


Additional query words: XL97
Keywords : kberrmsg xladdins xlgpf
Version : 97
Platform : WINDOWS


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: May 8, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.