2015-08-27 2 views
0

Я не могу понять, как правильно работать со списком в VBA. Прежде всего, я попытался использовать элемент управления ActiveX, но в итоге он не работал должным образом (изменяя размер самостоятельно или исчезая вместе). Кажется, это общая проблема или ошибка в excel. Что-то делать с просмотром в разных разрешениях или что-то в этом роде.Как правильно работать со списком в VBA?

В любом случае, так что я здесь. Я пытаюсь использовать поле со списком управления формой. Как изменить имя из Combo Box 1 на что-то более подходящее? Как заполнить поле со списком через VBA? Открыв книгу? Как правильно использовать поле со списком? Я пробовал разные вещи в течение нескольких часов, и я просто не могу заставить его работать. Я про брошенное полотенце

Редактировать: Просто заметьте, но вы, вероятно, не найдете статей на этом сайте о элементах управления формами, которые я еще не пробовал. Также я добавлю код в то время, что я уже пробовал, но я разместил это уже, чтобы вы могли.

Private Sub Workbook_Open() 
    Sheet10.DropDowns.Add(280, 70, 200, 20) 
end sub 

Вышеприведенное добавляет поле со списком к моему листу10. Что теперь? Как заполнить его? Как это назвать? Я понятия не имею

Private Sub Workbook_Open() 
    Sheet10.DropDowns.Add(280, 70, 200, 20).Name = cmbTest 

    cmbTest.AddItem "test" 
    'Tried many different things here to add an item, this is just 1 of the many ways I found on the internet. Don't work. 
end sub 

Над именами, DropDown но я не могу использовать имя закодировать ничего ..

+0

Возможный дубликат [Программно добавить ComboBox в VBA (Excel)] (http://stackoverflow.com/questions/17675761/programatically-add-combobox-in-vba-excel) –

ответ

1

Что об этом (не проверялось, но логический):

Private Sub Workbook_Open() 
    Dim objDropDown as DropDown 
    Set objDropDown = Sheet10.DropDowns.Add(280, 70, 200, 20) 
    ... etc ... 
End Sub 
1

Обычно такие методы, как «Добавить в excel», возвращают экземпляр объекта. Так, например, вы можете сделать следующее:

Dim myDropdown As DropDown 
Set myDropdown = Sheet10.DropDowns.Add(280, 70, 200, 20) 
myDropdown.Name = "cmbTest" 
myDropdown.AddItem "Hi" 

Ваше разочарование понятно, как мне было трудно найти какую-либо документацию для этого. Тем не менее, это сообщение в блоге: VBA For Excel's Form Control Combo Boxes, похоже, есть некоторые потенциально полезные примеры.

+0

Ну, теперь я чувствую себя немного глупым, я попробовал то, что вы сказали, кроме Dim myDropdown As DropDown. У меня было что-то вроде Dim myDropdown As Object или Dim myDropdown как MSForms.ComboBox. Ни один из них не работал явно. – jvh

+0

Он также работает с 'dim как Variant' или 'Object'. Не знаю, почему это не сработало для вас. –