Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Is there a way in VBA to compare Object References?
Consider the following Option Explicit Dim WBArray(1 To 1) As Workbook Public Sub assign() Set WBArray(1) = ActiveWorkbook End Sub Public Sub test() If WBArray(1) = ActiveWorkbook Then MsgBox "Yes" Else MsgBox "No" End If End Sub Functionally, I want to make an AddIn with a class module that captures Application events, but I only want to execute the code for those events on workbooks that the user has told me are part of my application. So, I was considering having the user tell me which workbooks are "mine" and in the event handlers, the first thing I do is check to see if the event causing workbook is in the list. I was hoping to not have to manage names or other user definable properties. Above, in test(), I functionally want to compare the object reference in the array against the object reference for ActiveWorkbook to see if they refer to the same object. Is this something I can do in VBA? (Excel 2003) I could capture the workbook.name property, and track changes to the name, but I was hoping to avoid that. Bob |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I forgot to include, the IF statement in Test() bombs with
Run-time error '91': Object variable or With block variable not set. Bob "INTP56" wrote: Is there a way in VBA to compare Object References? Consider the following Option Explicit Dim WBArray(1 To 1) As Workbook Public Sub assign() Set WBArray(1) = ActiveWorkbook End Sub Public Sub test() If WBArray(1) = ActiveWorkbook Then MsgBox "Yes" Else MsgBox "No" End If End Sub Functionally, I want to make an AddIn with a class module that captures Application events, but I only want to execute the code for those events on workbooks that the user has told me are part of my application. So, I was considering having the user tell me which workbooks are "mine" and in the event handlers, the first thing I do is check to see if the event causing workbook is in the list. I was hoping to not have to manage names or other user definable properties. Above, in test(), I functionally want to compare the object reference in the array against the object reference for ActiveWorkbook to see if they refer to the same object. Is this something I can do in VBA? (Excel 2003) I could capture the workbook.name property, and track changes to the name, but I was hoping to avoid that. Bob |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Sorry, forget that last error message, different code ....
The error message is: Run-time error '438': Object doesn't support this property or method. "INTP56" wrote: Is there a way in VBA to compare Object References? Consider the following Option Explicit Dim WBArray(1 To 1) As Workbook Public Sub assign() Set WBArray(1) = ActiveWorkbook End Sub Public Sub test() If WBArray(1) = ActiveWorkbook Then MsgBox "Yes" Else MsgBox "No" End If End Sub Functionally, I want to make an AddIn with a class module that captures Application events, but I only want to execute the code for those events on workbooks that the user has told me are part of my application. So, I was considering having the user tell me which workbooks are "mine" and in the event handlers, the first thing I do is check to see if the event causing workbook is in the list. I was hoping to not have to manage names or other user definable properties. Above, in test(), I functionally want to compare the object reference in the array against the object reference for ActiveWorkbook to see if they refer to the same object. Is this something I can do in VBA? (Excel 2003) I could capture the workbook.name property, and track changes to the name, but I was hoping to avoid that. Bob |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Bob,
Change... If WBArray(1) = ActiveWorkbook Then To... If WBArray(1) is ActiveWorkbook Then -- Jim Cone San Francisco, USA http://www.realezsites.com/bus/primitivesoftware (Excel Add-ins / Excel Programming) "INTP56" wrote in message Is there a way in VBA to compare Object References? Consider the following Option Explicit Dim WBArray(1 To 1) As Workbook Public Sub assign() Set WBArray(1) = ActiveWorkbook End Sub Public Sub test() If WBArray(1) = ActiveWorkbook Then '<<<<< MsgBox "Yes" Else MsgBox "No" End If End Sub Functionally, I want to make an AddIn with a class module that captures Application events, but I only want to execute the code for those events on workbooks that the user has told me are part of my application. So, I was considering having the user tell me which workbooks are "mine" and in the event handlers, the first thing I do is check to see if the event causing workbook is in the list. I was hoping to not have to manage names or other user definable properties. Above, in test(), I functionally want to compare the object reference in the array against the object reference for ActiveWorkbook to see if they refer to the same object. Is this something I can do in VBA? (Excel 2003) I could capture the workbook.name property, and track changes to the name, but I was hoping to avoid that. Bob |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks Jim, that's just what I wanted. Bob
"Jim Cone" wrote: Bob, Change... If WBArray(1) = ActiveWorkbook Then To... If WBArray(1) is ActiveWorkbook Then -- Jim Cone San Francisco, USA http://www.realezsites.com/bus/primitivesoftware (Excel Add-ins / Excel Programming) |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thank you very much, Jim! This is also exactly what I was looking for. I
hope it works with other objects as well. I shall do more testing... Thanks, Matthew Pfluger "Jim Cone" wrote: Bob, Change... If WBArray(1) = ActiveWorkbook Then To... If WBArray(1) is ActiveWorkbook Then -- Jim Cone San Francisco, USA http://www.realezsites.com/bus/primitivesoftware (Excel Add-ins / Excel Programming) "INTP56" wrote in message Is there a way in VBA to compare Object References? Consider the following Option Explicit Dim WBArray(1 To 1) As Workbook Public Sub assign() Set WBArray(1) = ActiveWorkbook End Sub Public Sub test() If WBArray(1) = ActiveWorkbook Then '<<<<< MsgBox "Yes" Else MsgBox "No" End If End Sub Functionally, I want to make an AddIn with a class module that captures Application events, but I only want to execute the code for those events on workbooks that the user has told me are part of my application. So, I was considering having the user tell me which workbooks are "mine" and in the event handlers, the first thing I do is check to see if the event causing workbook is in the list. I was hoping to not have to manage names or other user definable properties. Above, in test(), I functionally want to compare the object reference in the array against the object reference for ActiveWorkbook to see if they refer to the same object. Is this something I can do in VBA? (Excel 2003) I could capture the workbook.name property, and track changes to the name, but I was hoping to avoid that. Bob |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Object Library References | Excel Programming | |||
Comparing lists of map references | Excel Worksheet Functions | |||
Object Library References | Excel Programming | |||
Object Library References | Excel Programming | |||
Drawing object references | Excel Programming |