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

Having problems using user forms in module

我最初使用 Application.Inputbox 来获取用户输入,效果很好。但是当我想增加选项时,它超过了 254 个字符的限制。因此不得不使用用户窗体。我是用户表单的新手。 我使用用户输入来选择案例陈述。 用户窗体基本上包含一个组合框 (CmbType)、一个附加标签和命令按钮 (ok)。它看起来不错,并在 属性 中添加了 RowSource 属性。执行时可以看到所有选项。 用户表单完整代码:

 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
…..
…..

我正在获取用户表单,但它没有关闭并且基本上不会处理案例 statements.One 我需要的更多帮助是创建一个数字以用于 case 语句,例如 1-Fruits,2-蔬菜等

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

创建一个名为 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"。在每个表单和模块的顶部添加它将使您了解问题,例如您尝试使用的变量不在范围内。