Excel VBA: как преобразовать универсальный объект управления в объект ComboBox? - PullRequest
10 голосов
/ 03 марта 2010

Мне нужно привести общий объект управления формой VBA в объект ComboBox, чтобы я мог добавлять в него элементы. Общий объект не позволяет мне вставлять элементы в мои существующие списки

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

Моя проблема в том, что у меня есть тонны ComboBoxов в моей форме, и мне нужно добавить одинаковые опции для всех них. Поэтому я хотел бы сделать это программно.

Ответы [ 2 ]

15 голосов
/ 03 марта 2010

Вы можете "привести" объект VBA, используя SET, например:

SET lbCurrentComboBox = ctlCurrent
8 голосов
/ 13 апреля 2012

Если Фил ответ не работает, попробуйте

SET lbCurrentComboBox = ctlCurrent.Object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...