VBA UserForm - Код не работает должным образом при корреляции - PullRequest
0 голосов
/ 19 февраля 2020

Позвольте мне предвосхитить это словами довольно нового для VBA. Но я создал пользовательскую форму, которая принимает имя, фамилию и должность. Глядя, чтобы соотнести обучение с должностью. Код ссылается на именованные диапазоны (1) Merge_Title и (2) Merge_Training от Merged_DF.

Ошибка, с которой я сталкиваюсь, видна в 'Результатах' pi c ниже. Нужно просто иметь имя, работу и все соответствующие тренинги, связанные с этой работой (ссылка Merge_DF pi c). Буду признателен за любую оказанную помощь.

Еще раз спасибо!

Merge_DF Pi c

Результаты

''' Submits userform into table
    Dim lRow As Long
    Dim lJob As Long
    Dim ws As Worksheet
    Dim ws_Merge As Worksheet

    Set ws = Worksheets("DATA")
    Set ws_Merge = Worksheets("MERGE_DF")

    'find first empty row in table
    lRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
    SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

    lJob = Me.CmboJob.ListIndex

    'verify data entered
    If Trim(Me.TextFirst.Value) = "" Then
        Me.TextFirst.SetFocus
        MsgBox "You Forgot the First Name"
        Exit Sub
    End If

    If Trim(Me.TextLast.Value) = "" Then
        Me.TextLast.SetFocus
        MsgBox "You Forgot the Last Name"
        Exit Sub
    End If

    If Trim(Me.CmboJob.Value) = "" Then
        Me.CmboJob.SetFocus
        MsgBox "You Forgot the Job Title"
        Exit Sub
    End If

   'loops and records data
    For Each c In ws_Merge.Range("Merge_Title")
        If c = Me.CmboJob.Value Then
            With ws
                .Cells(lRow, 1).Value = Me.TextLast.Value
                .Cells(lRow, 2).Value = Me.TextFirst.Value
                .Cells(lRow, 4).Value = Me.CmboJob.Value
                For Each i In ws_Merge.Range("Merge_Training")
                    ws.Cells(lRow, 7).Value = i.Value
                    lRow = lRow + 1
                Next
                ' lRow = lRow + 1
            End With
        End If
    Next c

    Me.TextLast.Value = ""
    Me.TextFirst.Value = ""
    Me.CmboJob.Value = ""
    Me.CmboJob.SetFocus

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...