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:
- 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.
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: | Major | Last Reviewed: | 10/22/2000 |
---|
Keywords: | kberrmsg KB168238 |
---|
|