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这里没有专家,但我认为它提供了工作表中的列数和行数,而不是选择中的行数。谢谢。在循环的另一部分有什么输入可以根据花名册检查会话时间吗?谢谢。循环的另一部分是否有任何输入,用于根据花名册检查会话时间?