Выбор данных из таблицы Excel (vba)

#vba

#vba

Вопрос:

у меня есть name_data листа Excel, и лист содержит 3 столбца (A1= ID, B1 = NAME И C1 = MARK) В чем я сомневаюсь, так это в том, что в пользовательской форме vba я ввожу или выбираю идентификатор УЧАЩИХСЯ в Combobox1 и нажимаю КОМАНДНУЮ кнопку, она должна отображать имя учащихся в Textbox1 и метку учащихся в Text2
данных, хранящихся на том же листе Excel, и нажимаю vba в alt F11

Пожалуйста, посоветуйте, как решить эту проблему

Комментарии:

1. Можете ли вы показать свой существующий код в пользовательской форме, которая пытается получить имя и пометку?

Ответ №1:

Предположим, у вас есть данные в ячейках от A1 до C10, первая строка которых содержит названия столбцов:

     A       B           C
1   ID      Name        Mark
2   1       Raj         50
3   2       Sulieman    45
4   etc...
  

На вашем Userform компьютере есть следующее:

  • ComboBox1 — содержит список идентификаторов
  • CommandButton1 — нажмите на это, чтобы получить информацию об ученике
  • TextBox1 — отображает имя учащегося на основе идентификатора, выбранного в combobox1
  • TextBox2 — показывает оценку учащегося на основе идентификатора, выбранного в combobox1

В вашем Userform добавьте следующий код:

 Private Sub UserForm_Initialize()
    Dim comboBoxItems As Range, Dim cl As Range

    Set comboBoxItems = Worksheets(1).Range("A2:A10")

    For Each cl In comboBoxItems //Populate combobox when userform launched
        Me.ComboBox1.AddItem (cl.Value)
    Next cl
End Sub

Private Sub CommandButton1_Click()
    Dim ID As Long
    Dim Name As String, Dim Mark As String, 
    Dim tableRng As Range

    Set tableRng = Worksheets(1).Range("A1:C10")

    ID = Me.ComboBox1.Value //Get ID selected in combobox
    Name = Application.WorksheetFunction.VLookup(ID, tableRng, 2, False)
    Mark = Application.WorksheetFunction.VLookup(ID, tableRng, 3, False)

    Me.TextBox1 = Name 
    Me.TextBox2 = Mark 
End Sub
  

Комментарии:

1. Нет проблем — рад, что помогли.