Problems with TypeOf

Question:
Given:

   Dim oX as Object   Set oX = optChoice1   If TypeOf oX is CheckBox Then...

If optChoice1 is a CheckBox the If… will be true unless optChoice1 is an element in a control array. Is there a way to pass it and have it properly identified?

Answer:
I can’t seem to reproduce your problem here, using VB5/SP3, so perhaps this has been addressed by a more recent version than you’re using? FWIW, here’s the code I tried:

Private Sub Command1_Click()   Dim oX As Object   Dim oY As Object   Set oX = Check1(0)   Set oY = oX   If TypeOf oY Is CheckBox Then      Debug.Print "It worked"   End IfEnd Sub

But, with that said, let me pass on some hard-earned advice. There are definitely times when TypeOf can fail for no apparent reason. Most notably when used within an (external) ActiveX object.

The best habit to get into is to use the TypeName() function, rather than TypeOf, and generally your problem will be quickly resolved.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: