11

I need to cast a generic VBA form control object into a ComboBox object so that I can add items to it. The generic object won't allow me to insert items into my existing lists

Dim ctlCurrent As MSForms.Control
For Each ctlCurrent In frmItemInput.Controls
    If TypeName(ctlCurrent) = "ComboBox" Then
         Dim lbCurrentComboBox As MSForms.ComboBox
         lbCurrentComboBox = ctlCurrent 'This is where the error occurs, when I try to convert one into another

         ' Adiciona os itens necessários
         lbCurrentComboBox.AddItem ("R")
         lbCurrentComboBox.AddItem ("D")
    End If
Next ctlCurrent

My problem is: I have tons of ComboBoxes in my form and I need to add the same options for all of them. So I would like to do this progrmatically.

MarkJ
  • 30,070
  • 5
  • 68
  • 111
Marcos Buarque
  • 3,318
  • 8
  • 44
  • 46

2 Answers2

15

You can "cast" an VBA Object by using SET, eg:

SET lbCurrentComboBox = ctlCurrent
Phil Rykoff
  • 11,999
  • 3
  • 39
  • 63
8

If phil's answer didn't work try

SET lbCurrentComboBox = ctlCurrent.Object
Community
  • 1
  • 1