Зацикливать пользовательский ряд (реестр) и помещать в рабочий лист сеанса - PullRequest
0 голосов
/ 25 февраля 2019

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

Каждый сеанс может содержать 3 пользователя.

Ростер

enter image description here

Сессия

enter image description here

Код у меня такfar:

Sub ScheduleSession()
Dim Roster As Worksheet
Dim Sessions As Worksheet
Dim LastRow As Long
Dim x As Long
Dim row As Range
Dim Session As Range

With ActiveWorkbook.Worksheets("Roster")
LastRow = .Cells(.Rows.Count, "A").End(xlUp).row
For x = LastRow To 8 Step -1

If IsEmpty((.Range("B" & x))) Then
    ' Look for a session
    Debug.Print ("Looking For a Session for " & (.Range("A" & x)))
            For Each Session In ActiveWorkbook.Worksheets("Sessions").Range("A1:E1").Cells
                Debug.Print (Session)
                ' Check session is not full (3 per session) else next session
                SessionCount = Cells(Rows.Count, Session.Column).End(xlUp).row
                If (SessionCount > 4) Then
                    Exit For
                Else
                    ' Loop over cells in employee roster to see if they are working on given day and time.
                    ' If so roster them by recording session against employee (on ROSTER col B) and employee against session in appropriate col on SESSIONS
                End If
            Next

Else
    ' Employee already scheduled
    Debug.Print ("This employee " & (.Range("A" & x)) & " already has a session")
End If

Next x
End With

Результат может выглядеть следующим образом: он записал дату / время сеанса в столбце для этого пользователя.

enter image description here

Соответственно, на листе сеанса теперь пользователь указан в столбце под сеансом:

enter image description here

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