在模块中使用用户表单时遇到问题

时间:2015-08-15 23:31:52

标签: excel-vba userform vba excel

我最初使用Application.Inputbox来获取工作正常的用户输入。但是当我想增加选项时,它超过了254个字符的限制。因此不得不使用userform。我是userforms的新手。 我使用用户输入来选择case语句。 userform基本上包含一个组合框(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
…..
…..

我正在获取用户表单,但它没有关闭,基本上没有进入case语句。我需要的另一个帮助是创建一个数字用于case语句,如1-Fruits,2-Vegetables等< / p>

1 个答案:

答案 0 :(得分:0)

看起来你正在处理变量范围。

创建一个名为globals的模块。在模块声明

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

以下是有关如何使用case语句的更多信息。 http://www.techonthenet.com/excel/formulas/case.php

另外,请查看“Option Explicit”。在每个表单和模块的顶部添加它将让您知道您尝试使用的不在范围内的变量等问题。