Excel 计算单元格列中的行数

Excel 计算单元格列中的行数,excel,vba,Excel,Vba,我正在尝试循环查看每个员工的名册,并自动将他们安排到一个免费会议中。其中一部分是计算当前单元格(会话)列中的行数 名册数据如下所示 会话数据如下所示 到目前为止,守则是: 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 ActiveWorkbo

我正在尝试循环查看每个员工的名册,并自动将他们安排到一个免费会议中。其中一部分是计算当前单元格(会话)列中的行数

名册数据如下所示

会话数据如下所示

到目前为止,守则是:

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 Each Session循环行中的行的帮助吗?当前是运行时错误91-未设置块变量的对象变量

这个问题已经被回答了很多次,但我看到的其他答案并没有说明如何将它应用到类似于范围的会话中

如果有人觉得自己很慷慨,那么最好在每次会议上都能到员工名册上查看他们是否在工作,是否可以安排时间

更新抱歉会话是会话

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

因为我需要For Each session循环中当前会话的行数。

我想您还没有设置变量
Sessions
。在
Dim Sessions As Worksheet
之后的某个地方,您需要添加
Set Sessions=ActiveWorkbook.Sheets(“Sessions”)
我想您还没有设置变量
Sessions
。在
Dim Sessions As Worksheet
之后的某个地方,您需要添加
Set Sessions=ActiveWorkbook.Sheets(“Sessions”)

这里的
Session
是一个单独的单元格,所以您总是查看第一列

SessionCount = Cells(Rows.Count, Session.Column).End(xlUp).row
…可能是你想要的

这里的
Session
是一个单独的单元格,所以您总是查看第一列

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

…可能是您想要的

当您使用“Sessions.Cells(Rows.Count、Sessions.Columns.Count)、End(xlup.row)”时会发生什么?这就是错误所在,对吗?为什么要使用session.rows.count和session.columns.count?由于循环范围中的每个单元格,行数和列数将始终为1,因此将始终得到单元格(1,1).End(xlup)。row@AlexdeJong这里没有专家,但我认为它提供了工作表中的列数和行数,而不是选择中的行数。使用“Sessions.Cells(Rows.Count,Sessions.Columns.Count)”时会发生什么.End(xlup).row“?这就是错误所在,对吗?为什么要使用session.rows.count和session.columns.count?由于循环范围中的每个单元格,行数和列数将始终为1,因此将始终得到单元格(1,1).End(xlup)。row@AlexdeJong这里没有专家,但我认为它提供了工作表中的列数和行数,而不是选择中的行数。谢谢。在循环的另一部分有什么输入可以根据花名册检查会话时间吗?谢谢。循环的另一部分是否有任何输入,用于根据花名册检查会话时间?