ID: Q147641
The information in this article applies to:
In Microsoft Excel, when you use a Visual Basic for Applications procedure to test whether a Workbook variable is equivalent to a ThisWorkbook object, the condition incorrectly evaluates to false, even if the variable and the object are equivalent.
To resolve this problem, use the name property when you compare the two objects. The Visual Basic code provided below shows how to compare the name properties.
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 Product Support Services (PSS) 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.
Sub CompWillWork()
Dim x as workbook
For each x in Workbooks
MsgBox "Value of ThisWorkbook.Name: " & ThisWorkbook.Name _
& chr(13)& chr(10) & "Value of x.Name: " & x.Name
If x.Name = ThisWorkbook.name Then
MsgBox "This Workbook!"
Else
MsgBox x.Name
End If
Next
End Sub
When you run the macro, this subroutine will return the message box "This
Workbook!"
Additional query words: 7.00 PgmObj
Keywords :
Version : 7.00
Platform : WINDOWS
Last Reviewed: May 19, 1999