Выбрать данные из таблицы Excel (VBA) - PullRequest
0 голосов
/ 26 декабря 2010

у меня есть лист Excel name_data, и лист содержит 3 столбца (A1 = ID, B1 = NAME AND C1 = MARK) В чем я сомневаюсь, в vba userform я ввожу или выбираю идентификатор STUDENTS в Combobox1 и нажимаю кнопку COMMAND, в нем должны отображаться ИМЯ ученика в Textbox1 и метка ученика в Text2
, хранящиеся в том же листе Excel, и добавленные vba в alt + F11

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

1 Ответ

1 голос
/ 26 декабря 2010

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

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

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

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

В вашем 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...