У меня есть пользовательская форма «AMForm», чтобы студенты могли выбирать свои классы в университете.
Для каждого класса имеются смежные функциональные кнопки, поэтому они могут выбрать «да» или «нет», если они хотят поступить внапример, класс «Машиностроение» с опциональными кнопками «да» или «нет».
Как только они отправят свою форму, она записывает их выбор в электронную таблицу «AMChoices».Эта таблица имеет каждый класс в вышеуказанных заголовках, поэтому она заполняет ячейку «x», если она была выбрана, или «-», если нет, например, если выбрана кнопка опции «Машиностроение», она заполняет «x» под этой ячейкой.
Каждый студент входит в систему с помощью пользовательской формы «Форма входа».Я хочу автоматически заполнить их идентификатор пользователя, имя и фамилию на «листе AMchoice», который можно выбрать при входе в систему.Их информация хранится в листе «Информация об ученике».
Как я могу кодировать, что при входе эта информация (первые 3 столбца) извлекается из листа «Информация об ученике» и копируется в первые 3 столбца »AMChoice "лист?
Я делаю это для нескольких пользователей, поэтому, когда следующий пользователь регистрирует свои выборы, я хочу, чтобы информация / выборы следующего пользователя были заполнены в следующей пустой строке.Я предполагаю, что мне пришлось бы использовать какую-то функцию HLookup / Vlookup, но я не уверен?
Мой код для входа.
Option Explicit
Private Sub btnLogin_Click()
Dim RowNo As Long
Dim ID As String, PW As String
Dim WS As Worksheet
Dim aCell As Range
On Error GoTo ErrorHandler
'Ensure User ID and password fields are filled
If Len(Trim(txtUser)) = 0 Then
txtUser.SetFocus
MsgBox "Error. UserID cannot be empty."
Exit Sub
End If
If Len(Trim(txtPass)) = 0 Then
txtPass.SetFocus
MsgBox "Error. Password cannot be empty."
Exit Sub
End If
'Set Range Location
Application.ScreenUpdating = False
Set WS = Worksheets("StudentInformation")
ID = LCase(Me.txtUser)
Set aCell = WS.Columns(1).Find(What:=ID, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
'If match found
If Not aCell Is Nothing Then
RowNo = aCell.Row
If Me.txtPass = aCell.Offset(, 1) Then
MsgBox "Login Successful."
AMForm.Show
Unload Me
Else
MsgBox "Incorrect UserID or Password. Please try again.", vbOKOnly
End If
'If not found
Else
MsgBox "Incorrect UserID or Password. Please try again.", vbOKOnly
End If
CleanExit:
Set WS = Nothing
Application.ScreenUpdating = True
Exit Sub
ErrorHandler:
MsgBox Err.Description
Resume CleanExit
End Sub