2015-10-30 3 views
0

Я использую VBA для обработки множества данных. Поскольку данные не чисты, иногда мне нужно вручную выбрать пользователя, который является правильным. Предпочитаю избегать формы пользователя, если можно. (хотя это будет сделано, если это лучший способ). Вот то, что я до сих пор:Есть ли лучший способ дать выбор строки пользователю?

Sub string_choice() 
Dim msgValue 
msgValue = MsgBox("Hello, which is correct? Choose:" _ 
& vbCr & "Yes: if you want option A" _ 
& vbCr & "No: if you want option B" _ 
, vbYesNoCancel + vbQuestion) 

If msgValue = vbYes Then 
MsgBox "You chose option A" 
ElseIf msgValue = vbNo Then 
MsgBox "You chose option B" 
ElseIf msgValue = vbCancel Then 
MsgBox "script closing, no choice made." 
End If 
End Sub 

Как я могу лучше всего захватить парочку строк и попросить пользователя выбрать один?

+1

'inputbox $ (" Введите опцию A или B "...)'? - UserForm с ComboBox будет наиболее интуитивно понятным. –

+0

'MsgBox' - хорошее решение, если вы уверены, что у вас не будет более 3 вариантов; 'Inputbox' может быть интересным, если у вас их больше, но вам нужно проверить вывод для проверки (осторожно). Следующее лучшее решение - это UserForm с динамически генерируемыми полями Option, которые довольно тяжелы! – R3uK

ответ

1

лучший способ - вопрос перспективы. Если лучше означает «меньше усилий по программированию», то сохраняйте его таким образом. Если лучше означать «более удобный», я бы сделал все возможное и создаю пользовательскую форму с помощью единого списка ListBox. Это даже лучше, чем ComboBox, потому что пользователь может видеть все варианты и просто щелкнуть по правильному.

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