If you are using Late binding, which it seems you are, the reference and the
Extensibility version is not relevant.
If Trust Access to VBProjects is not allowed the code will fail.
There could be all sorts of other reasons it'll fail with names etc not as
expected
If all you are trying to do is set a reference to a sheet with known
codename, at least it looks like that's what you are after
For Each ws In ActiveWorkbook.Worksheets
If ws.CodeName = myWSCodename Then
Exit For
End If
Next
If Not ws Is Nothing Then
MsgBox ws.Name, , myWSCodename
Else
MsgBox "not found"
End If
I know this is a loop but unless you have hundreds of sheets it's unlikely
you'll notice any difference, if anything with a typical qty of sheets the
loop will probably be quicker. The main advantage though is the Trust Access
option is not required.
Regards,
Peter T
"Barb Reinhardt" wrote in message
...
I am using the following bit of code
On Error Resume Next
Set FindWorksheet =
myXLBook.Worksheets(CStr(myXLBook.VBProject.VBComp onents(myWSCodename).Properties("Name")))
On Error GoTo 0
to find a worksheet. FindWorksheet is defined as a Worksheet. This code
works on my computer when the Microsoft Visual Basic for Application
Extensibility 5.3 reference is unchecked. FWIW, I'm using Excel 2003 on
Windows XP.
A colleague is running the same code in her machine with the reference
unchecked and it's not finding anything. She's also using Office 2003 and
I
suspect she's using Windows XP, but I'm not certain. When we select the
reference to the Extensibility library on her machine, everything works
fine.
Gary's Student has helped some in this thread
http://www.microsoft.com/office/comm...9-5eec3868474a
, but I still don't understand why it works on some machines and not on
others. I really don't want to have to redistribute this application
again.
Can someone assist?
Thanks,
Barb Reinhardt