2014-06-19 21 views
0

Я новичок в VBA. Я уже несколько часов пытаюсь выполнить простую функцию заполнения combobox (управления формой) с помощью кода VBA. Я просмотрел множество веб-сайтов (включая этот), но ни один из этих кодов не работает. Я использую этот код. (Я помещаю этот код в модуль)Заполнение Combobox (контроль формы) с использованием VBA на Excel 2013

Sub populateDropDown303() 

With Worksheets("S1 Fuel Consumption").Shapes("Drop Down 303").ControlFormat 

.AddItem "this" 

.AddItem "that" 

End With 

End Sub 

Эй, у меня код работает. Но каждый раз, когда я выбираю значение из раскрывающегося списка combobox, он снова запускает код и отображает повторяющиеся значения. Как удалить это?

+0

Можете ли вы лучше определить «не работает»? Вы получаете ошибку, никаких результатов, неправильных результатов и т. Д. ... – sous2817

+0

Эй ... Я не получаю никаких результатов. Выпадающее поле combobox просто пустое. –

+0

Эй, у меня код работает. Но каждый раз, когда я выбираю значение из раскрывающегося списка combobox, он снова запускает код и отображает повторяющиеся значения. Как удалить это? –

ответ

2

Попробуйте это:

Sub populateDropDown303() 
    Dim ws As Worksheet: Set ws = Worksheets("S1 Fuel Consumption") 
    With ws.Shapes("Drop Down 303").ControlFormat 
     .RemoveAllItems '~~> This is what you lack I think 
     .AddItem "This" 
     .AddItem "That" 
    End With 
End Sub 

Я добавил новую переменную ws из Worksheet типа так Intellisense ногами в
Таким образом, это будет проще для вас, чтобы увидеть доступные методы и свойства. объект, над которым вы работаете. НТН.

+0

Эй, да, это работает. Большое спасибо: D А также, у меня есть несколько таких dropboxes. Могу ли я заполнить их только одним кодом? возможно, используя функцию диапазона формы? –

+0

@ user3756196 Да, вы можете это сделать. Как вы хотите их заполнить? Где вы получаете предметы, которые вы будете добавлять в каждом. Если это не так сложно, вы можете даже использовать цикл. – L42

+0

Эй, да .. Я использовал цикл :) Большое спасибо –

0
With Worksheets("S1 Fuel Consumption").Dropdowns("Drop Down 303") 
    .AddItem "this" 
    .AddItem "that" 
End with 
+0

Ссылка на документацию и любой сопроводительный текст, объясняющий, что вы изменили, будет очень полезной. – Sumurai8

+0

Я поставил точный код в «модуль» под Sub PopulateDropDown303() Он по-прежнему не работает. Я просто не могу понять, почему:/ –

+0

Что не работает? – SWa

Смежные вопросы