SYMPTOMS
When you run a macro in a Microsoft Excel workbook that is part of a
Microsoft Binder file or that is embedded in a document in another
program, you may receive the following error message:
Run-time error '91':
Object variable or With block variable not set
CAUSE
This problem occurs when both of the following conditions are true:
- The macro line that causes the error uses ActiveCell or ActiveSheet.
-and-
- You run the macro from the Visual Basic Editor.
NOTE: If you run the macro when the Office Binder window or the other
program's window is active, you do not receive the error message.
RESOLUTION
Microsoft provides programming examples 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. This article assumes
that you are familiar with the programming language being demonstrated and the
tools used to create and debug procedures. Microsoft support professionals can
help explain the functionality of a particular procedure, but they will not
modify these examples to provide added functionality or construct procedures to
meet your specific needs. If you have limited programming experience, you may
want to contact a Microsoft Certified Partner or the Microsoft fee-based
consulting line at (800) 936-5200. For more information about Microsoft Certified
Partners, please visit the following Microsoft Web site:
For more information about the support options that are available and about how to contact Microsoft, visit the following Microsoft Web site:
To run the macro in the Visual Basic Editor, modify the macro by specifying
the worksheet in which you want to use the ActiveCell or ActiveSheet
property. For example, if the macro contains the following code:
Sub Test()
ActiveCell.Value = "my value"
End Sub
modify the macro as shown in the following example:
Sub Test()
Thisworkbook.Sheets("Sheet1").Activate
ActiveCell.Value = "it works"
End Sub
NOTE: You must specify the sheet in which you want to use the ActiveCell
property.