#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. Нет проблем — рад, что помогли.