Разделяйте ярлыки пользовательских форм Excel для разных пользователей

У меня есть данные на листе, которые были сгенерированы как пользователь, зарегистрированный на выбранный им тип доступа (как студент или профессор). У меня две пользовательские формы (frmStudent и frmProfessor). Мой вопрос заключается в том, как изменить заголовок пользовательской формы (имя, курс / отдел, пол) по мере входа пользователя в систему.

Пример. Когда пользователь123 регистрируется, отображаются показания frmStudent и их соответствующее имя, курс и пол, указанные на листе, как показано на этикетках их пользовательской формы. (frmStudent.lblname.caption будет изменен на «Bogart MAgnifico», а также с курсом и полом.), или если user456 входит в frmProfessor и показывает то же самое с метками.

Кроме того, во время регистрации я решил, что они будут выбирать, какой тип доступа они хотели бы использовать с двумя кнопками. Я попытался использовать цикл (тот, который я использовал как frmLogin, проверяет правильность имени пользователя и пароля), но я не могу заставить его работать.

Показать код может помочь. Пожалуйста, рассмотрите мой вопрос, поскольку я новичок в VBA.

    В моей мануальной книге я создал следующие вещи:

    1. В «Sheet1»: строка 1 – имена для 2 пользователей; другие 2 строки – их имена и фамилии.

      введите описание изображения здесь

    2. Кнопка связана с этим подпунктом:
     Sub Excel_login ()
         UserForm1.Show
     End Sub
    

    Кнопка используется для вызова UserForm1 для входа в систему. Если это правильно, отображается UserForm2.

    введите описание изображения здесьвведите описание изображения здесь

    1. Это код под кнопкой «ОК»:
     Private Sub CommandButton1_Click ()
         Dim ws В качестве рабочего листа
         Установите ws = ThisWorkbook.Worksheets ("Sheet1")
    
         Выберите Case Me.TextBox1.Text
             Случай ws.Range ("A1"). Значение 'userABC
                 UserForm2.Caption = ws.Range ("A1"). Значение
                 UserForm2.Label2.Caption = ws.Range ("A2"). Значение
                 UserForm2.Label3.Caption = ws.Range ("A3"). Значение
                 Me.Hide
                 UserForm2.Show
             Случай ws.Range ("B1"). Значение 'userDEF
                 UserForm2.Caption = ws.Range ("B1"). Значение
                 UserForm2.Label2.Caption = ws.Range ("B2"). Значение
                 UserForm2.Label3.Caption = ws.Range ("B3"). Значение
                 Me.Hide
                 UserForm2.Show
             Другое дело
                 MsgBox «Неверное имя пользователя».
                 Me.Hide
                 Exit Sub
         Конечный выбор
    
         Установить ws = Nothing
     End Sub
    
    1. Если пользователь регистрируется успешно, он видит одну из этих двух форм с разными надписями label и userForm в зависимости от пользователя:

      введите описание изображения здесьвведите описание изображения здесь

    РЕДАКТИРОВАТЬ

    Чтобы не создавать новый Case для каждого нового пользователя, вы можете просто сделать это:

     Dim i as long For i = 1 To ws.UsedRange.Columns.Count If ws.Cells(1, i).Value = Me.TextBox1.Text Then UserForm2.Caption = ws.Cells(1, i).Value UserForm2.Label2.Caption = ws.Cells(2, i).Value UserForm2.Label3.Caption = ws.Cells(3, i).Value Me.Hide UserForm2.Show Exit For End If Next 
    Давайте будем гением компьютера.