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.