VBA ComboBox в TextBox в двух различных пользовательских формах - PullRequest
0 голосов
/ 30 ноября 2018

Так что мне нужна помощь в завершении поиска приложения в элементах периодической таблицы.Идея, если пользователь должен ввести элемент в поле со списком в Userform1, который имеет раскрывающийся список.Затем, в зависимости от выбранного элемента, направьте на Userform2, который имеет текстовое поле, и в этом текстовом поле будет дана атомная масса для каждого элемента.Мне нужен пример того, как и где написать код в любом userfroms.Это то, что я имею до сих пор.Имя пользовательской формы1 Element_LookUp Имя пользовательской формы2 Element_LookUp_Result

Пользовательская форма1:

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

Пользовательская форма 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 голосов
/ 30 ноября 2018

Поскольку вы ведете данные из различных пользовательских форм / модулей и т. Д., Я полагаю, что вы ищете глобальную переменную ... В верхней части модуля для вашей пользовательской формы (для целей этого поста будетскажем, 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, чтобы найти выход, где вы бы хотели столбец для атомной массы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...