2014-02-05 3 views
0

Я создаю макрос, который будет запускаться, затем приостанавливает макрос и позволяет пользователю вводить значение, а затем продолжать работать снова. Я знаю, что есть функция InputBox, но я хочу, чтобы окно появилось в раскрывающемся списке. Я не уверен, как это сделать, любая помощь будет очень признательна.Функция ввода в виде комбинированного блока VBA

+1

Создать UserForm и поставить выпадающий на нее. Используйте эту пользовательскую форму вместо msgbox. –

+0

Сиддхарт благодарит вас за ответ! не могли бы вы показать мне пример того, как будет выглядеть код –

ответ

1

Siddharth благодарит за ваш ответ! не могли бы вы показать мне пример того, что код будет выглядеть - рыболовной король 13 6 минут назад

Надежда это получает вас на правильном пути ...

Добавить UserForm и добавить выпадающий в Это. Я добавляю некоторые основные данные в комбо, чтобы показать вам, как это работает. Изменение применимо

enter image description here

Ваш UserForm будет иметь код что-то вроде этого

Private Sub UserForm_Initialize() 
    With ComboBox1 
     .AddItem "option1" 
     .AddItem "option2" 
     .AddItem "option3" 
     .AddItem "option4" 
     .AddItem "option5" 
    End With 
End Sub 

Private Sub CommandButton1_Click() 
    If ComboBox1.Text <> "" Then MsgBox "the user chose or typed " & ComboBox1.Text 
End Sub 

Далее изменить макрос так, что он выглядит как этот

Sub Sample() 
    ' 
    '~~> Do Some Stuff 
    ' 
    UserForm1.Show 
    ' 
    '~~> Continue doing Some Stuff 
    ' 
End Sub 

Followup от комментариев

Еще один вопрос. Если значение моего выпадания происходит из именованного диапазона. Как это определить? - рыболовный король 13 3 минуты назад

Использование .List вместо .AddItem

Private Sub UserForm_Initialize() 
    ComboBox1.List = Application.Transpose(Range("MyNamedRange")) 
End Sub 
+0

Это очень полезно, спасибо! Еще один вопрос: если значение моего падения происходит из именованного диапазона. Как это определить? –

+0

Я обновил ответ. Возможно, вам придется обновить страницу –

+0

Siddharth Rout спасибо большое за вашу помощь! Сегодня я попробую этот процесс. –

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