2015-08-15 3 views
1

Первоначально я использовал Application.Inputbox для ввода пользовательского ввода, который работал нормально. Но когда я хотел увеличить параметры, он превысил 254 символа. Таким образом, пришлось использовать пользовательскую форму. Я новичок в пользовательских формах. Я использовал пользовательский ввод для выбора операторов case. Пользовательская форма в основном содержит combobox (CmbType), прикрепленную метку и командную кнопку (ok). Он выглядит отлично и добавил свойство RowSource в свойство. Все варианты можно было увидеть при выполнении. UserForm Полный код:Проблемы с использованием пользовательских форм в модуле

Sub ok_Click() 
Type = CmbType.Value 
Unload UserForm1 
End Sub 

Модуль Код:

Sub Ingredients() 
Dim statements 
UserForm1.Show 
Select Case Type 
Case Is= “Fruits” 
…. 
Case Is =”Vegetables” 
… 
End Select 
Unload UserForm1 
….. 
….. 

Я получаю UserForm, но не закрывается, и в основном не собирается в случае statements.One больше помощи, что мне нужно, чтобы создать числовое значение, которое должно использоваться в случае, например, 1-Фрукты, 2-Овощи и т. д.

ответ

0

Похоже, вы имеете дело с переменной областью.

Создайте модуль, называемый глобальными. В модуле объявить

Public iType as integer 

Вы можете получить доступ к этому из любого места вашего проекта. Не используйте имя переменной Type. Это зарезервированное слово.

В виде нормально щелчка кнопки использования

iType = CmbType.Value 
Unload me 

В использовании модуля

UserForm1.Show 
Select Case iType 
Case 1 
    'Fruits 
Case 2 
    'Vegetables 
Case Else 
    'Not sure what this food is 
End Select 

Вот немного больше информации о том, как можно использовать заявления случае. http://www.techonthenet.com/excel/formulas/case.php

Кроме того, ознакомьтесь с «Вариантом Явным». Добавление этого в верхней части каждой формы и модуля позволит вам узнать о проблемах, таких как переменные, которые вы пытаетесь использовать, которые не входят в объем.

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