VBA ComboBox到TextBox的两种不同的用户形式

时间:2018-11-30 15:53:04

标签: excel vba excel-vba

因此,我需要帮助来完成对元素周期表中元素的应用程序查找。是否让用户在具有下拉列表的Userform1的组合框中输入元素的想法。然后,根据所选择的元素,将其定向到具有文本框的Userform2,并在该文本框中为每个元素指定原子质量。我需要一个示例,说明如何以及在何处fromusers中编写代码。这是我到目前为止所拥有的。 UserForm1的名称为Element_LookUp Userform2名称为Element_LookUp_Result

Userform1:

Private Sub CommandButton1_Click()

    Unload Me                   'Closes The Screen after the click
    Element_LookUp_Result.Show  'Shows The result scrren in a new pop up

End Sub

Private Sub UserForm_Initialize()

    ' All 118 Elements will be shown on a drop down list
    ' The elements are in order ; autofill helps input the element.

    ComboBox1.AddItem "Hydrogen"
    ComboBox1.AddItem "Helium"
    ComboBox1.AddItem "Lithium"
    ComboBox1.AddItem "Beryllium"
    ComboBox1.AddItem "Boron"
    ComboBox1.AddItem "Carbon"

End Sub ' Not all the elements are listed below i just wanted to save time

UserForm 2:

Private Sub UserForm_Terminate()

    Unload Me               'Once the (X) is clicked the result screen goes away
    Element_Lookup.Show     'Result scrren goes back to the input screen again

End Sub

1 个答案:

答案 0 :(得分:-1)

当您要维护来自不同用户窗体/模块等的数据时,我相信您正在寻找一个全局变量...在用户窗体模块的顶部(出于本帖子的目的,假设UF1是userform1,UF2是userform2),则将放置(不在子例程中):

Public ElementName as String

现在,在您的命令按钮中1_click:

ElementName = Combobox1.Value

在UF2初始化子例程中,您将输入以下内容:

Textbox1.value = UF1.ElementName

上面的示例是如何仅传递变量。您也可以使用ElementName,例如:

Textbox1.Value = Application.Index(OutputRange,Application.Match(UF1.ElementName,LookupRange,0))

有了该索引/匹配项,您就可以使用ElementName查找要用于原子质量的列的输出。