Подсчет строк в столбце ячейки - PullRequest
0 голосов
/ 24 февраля 2019

Я пытаюсь перебрать список каждого сотрудника и автоматизировать его размещение на бесплатной сессии.Частично это подсчет строк в столбце текущей ячейки (сеанс)

Данные Ростер выглядят как enter image description here

сеансы данные выглядят как

enter image description here

Код на данный момент:

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.Columns.Count).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

Могу ли я получить помощь в подсчетестроки в цикле For For Session, текущим значением которого является Ошибка во время выполнения 91 - Переменная объекта с переменной блока не установлена.

На этот вопрос отвечали много раз, но другие ответы, которые я вижу, не показывают, как применить его к диапазону, подобному Сессии.

Если кто-то чувствует щедрое руководство по переходу ксписок сотрудников от каждого сеанса, чтобы проверить, работают ли они и доступны ли для планирования, было бы здорово.

ОБНОВЛЕНИЕ Извините, сеансы - это сеанс

SessionCount = Cells(Rows.Count, Session.Columns.Count).End(xlUp).row

Так как мне нужноколичество строк в текущем сеансе в цикле «Для каждого сеанса».

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019
SessionCount = Cells(Rows.Count, Session.Columns.Count).End(xlUp).row

Здесь Session - это одна ячейка, поэтому вы всегда смотрите на первый столбец ...

SessionCount = Cells(Rows.Count, Session.Column).End(xlUp).row

... это, вероятно, то, что вы хотите

0 голосов
/ 24 февраля 2019

Я думаю, вы еще не установили переменную Sessions.Где-то после Dim Sessions As Worksheet, вам нужно добавить Set Sessions = ActiveWorkbook.Sheets("Sessions")

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