VBA won't recognize form object

  • Thread starter Thread starter Hilde
  • Start date Start date
H

Hilde

I am working on a new project and have created a form
which VBA named UserForm1. It appears in the object list
for VBAProject. The line
UserForm1.Show
was being executed before, but now repeatedly gives me
a 'Need Object' error.

I can't seem to get VBA to recognize the form. Any
suggestions would be gratefully received.
 
Sometimes the debugger don't display the actual arror, just its caller, or its callers
caller, or its callers callers caller. Or its ...

UserForm1.Show
is good enough (unless you renamed the userform something else than UserForm1). So it must
be something it the userform's Initialize or Activate code that is either wrong or calling
something wrong. Or calling something that's calling something wrong. Or ...

Those things take time to spot. It's just the way it is.
 
have you Dim'd a variable named Userform1 elsewhere in your code?

For instance

Dim Userform1 As Object
Userform1.Show

will fail since you've not set the variable UserForm1 to an object that
can be shown.

Note that some will argue that even though VBA allows it, it's not
proper technique to instantiate an object using the class name. Instead,
"proper" technique is to declare an object variable of the class, then
set the variable to a new instance of the object, so instead of

Public MySub()
UserForm1.Show
End Sub

you'd use

Public MySub()
Dim myForm As UserForm1
Set myForm = New UserForm1
myForm.Show
End Sub

using the second method, you can create multiple form object variables,
all of which can be set at the same time.
 
Thanks. You are absolutely right -- it takes time (about 3 hours) but I
did track the error down in the initialization procedure. Nice of you
to reply.
 
Thanks for the input. I found the problem in the Initialization
procedure. I appreciate the reminder of good programming procedure,
however, and will do it!

lol
 
Back
Top