The information in this article applies to:
SYMPTOMSWhen you use a Visual Basic application to create an OLE Automation object using Microsoft Excel, you may receive the following error message when you attempt to access the object:
CAUSE
This problem occurs when you access a Microsoft Excel OLE Automation object
in a Visual Basic procedure while Microsoft Excel is closed. If, for
example, you create a reference for a worksheet object using the
CreateObject function, and you create a reference for another Microsoft
Excel object using the GetObject function in your procedure, if you then
set the Microsoft Excel worksheet object (Excel.Sheet) equal to nothing,
you receive the OLE Automation error message if you then try to access the
other object.
You receive this error message because the statement "Set xlSheet =
Nothing" closes Microsoft Excel, and the "MsgBox xlApp.Name" statement that
follows in the procedure attempts to access the Microsoft Excel application
object again.
Note that in the above example, if you set the Microsoft Excel application object equal to nothing (Set xlApp = Nothing), you do not receive an error message if you then access the Microsoft Excel worksheet object (xlSheet) in the procedure. Additionally, you do not receive this error message if Microsoft Excel is running when you run this macro because, in this case, the CreateObject function starts another instance of Microsoft Excel. RESOLUTIONTo avoid this behavior in a Visual Basic procedure, do not set the value of a Microsoft Excel object that was created using the CreateObject function equal to Nothing until you are done accessing all Microsoft Excel OLE Automation objects in the procedure. Additional query words: 5.00c
Keywords : kbinterop kbprg xlwin |
Last Reviewed: October 12, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |