如何在模块的子模块中调用表单的用户表单?

时间:2019-04-23 07:21:28

标签: excel vba

我已经创建了一个带有comboBox的UserForms(下拉列表)。 而且我还在模块中编写了sub。

我想在子窗体的一个步骤中调用用户窗体,例如Inputbox。

用户表单

enter image description here

我已经用用户代码编写了Public Sub UserForm_Initialize()

Public Sub UserForm_Initialize()
Dim t

UserForm.Show
t = ComboBox1.Value
End Sub

我在模块中的代码:

Sub Ingestion()
Dim x, z
Dim rRange

Sheets("Time Log").Select
x = Range("H300").End(xlUp).Row

If Range("A" & x).Value <> "" Then
    z = InputBox("Please confirm the Task type")
    Range("B" & x) = z

End If


End Sub

现在,我想将“输入”框更改为组合框。

但是如果我在模块中调用它,则会抛出错误:

Sub Test()
Call UserForm_Initialize

End Sub

Sub or Function Not Defined 

基本上,我正在尝试创建带有下拉选项的输入框。

1 个答案:

答案 0 :(得分:0)

UserForm_Initialize事件在用户表单初始化后立即执行。因此,尝试在已打开UF时显示它是不合逻辑的。紧接着,您必须引用正确的UF名称,在这种情况下,这将导致TaskList.Show

您可以打开用友代码模块的用友外部。例如

Sub openUF()

TaskList.Show

End Sub

然后,您可以在UF模块中执行代码。这些通常绑定到UF上的对象,例如:

Sub CommandButton_Click() 'in case the UF has a command button and a combobox

MsgBox "You picked '" & Me.ComboBox1.Value & "'.", vbInformation, "Help"

End Sub
相关问题