У меня есть пользовательская форма VBA Excel2010 с одним полем со списком, из которого пользователь должен иметь возможность выбрать открытую в настоящее время книгу Excel. Подпрограмма USERFORM_Initialize содержит (среди прочего):
cbWorkbook.Clear
cbWorkbook.Visible = True
For Each wb In Workbooks
cbWorkbook.AddItem wb.name
Next wb
Я установил точку останова для этого кода и могу пройти через нее; в текущей ситуации существует четыре открытых рабочих книги, и «для каждого» повторяется четыре раза, в зависимости от ситуации. И я вижу, что wb.name содержит значения, которые я хочу.
Однако, когда форма отображается и щелкает стрелка раскрывающегося списка, «список» становится пустым. Похоже, что есть место для одного элемента, и этот элемент пуст. (Я считаю, что это типично для пустого выпадающего списка.)
Выберите атрибуты для выпадающего списка:
Autosize = False; AutoTab = ложь; Enabled = True; DropButtonStyle = 1-fmDropButtonStyleArrow;
Высота = 18; ListRows = 8; ListStyle = 0; Locked = False; ShowOptionWhen = 2; SpecialEffect = 2; Стиль = 0; Visible = True. Во время выполнения cbWorkbook.listCount = 4
Это в разработке, и вчера оно работало, как и ожидалось, но сейчас, похоже, никогда не работает. Есть идеи, где я могу пойти не так?
РЕДАКТИРОВАТЬ: Я нашел решение этого: я случайно дублировал еще одно поле со списком поверх cbWorksheet, фактически скрывая его. Элемент управления, который я видел, был пуст, а элемент управления, который я хотел, был перекрыт. Удаление мошеннического блока управления решило проблемы.
Мои извинения; это должно было быть первым, что я искал.