View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default How to "trick" VBA?

for each ws in wbExtrFrom.worksheets
Should work ok.

But you could use another technique, too:

dim ws as worksheet
set ws = nothing
on error resume next
set ws = wbextrfrom.worksheets("Top")
on error goto 0

if ws is nothing then
'it doesn't exist
else
'it does exist
end if

And the second version doesn't care about upper/lower case for the worksheet
name.

But if you really want the user to delete it, maybe just deleting it in code
would be sufficient.

application.displayalerts = false
on error resume next
wbextrfrom.worksheets("top").delete
on error goto 0
application.displayalerts = true



davegb wrote:

The code I'm writing requires me to check to see if a worksheet named
"Top" already exists before the macro creates one. My test for a
sheet named Top isn't working because if I dim ws as a worksheet or
worksheets or an object, I get an "Object doesn't support that
property or method" error on the marked line. If I dim ws as sheets,
I get a compile error on the .name, "Method or data member not
found" since Sheets doesn't have a name property. Catch 22?
wbExtrFrom is declared as a workbook.

For Each ws In wbExtrFrom ß Object doesn't support this property or
method
If ws.Name = "Top" Then ß Method or data member not found
If MsgBox("A worksheet named Top already exists in this
workbook." _
& "Please remove or rename it and run the macro again.", _
vbOKOnly) = vbOK Then Exit Sub
End If
Next

What is the trick to workaround this limitation in VBA?

Thanks as always.


--

Dave Peterson