当我尝试使用max函数时,VBA吓坏了?

时间:2016-11-18 22:08:55

标签: excel vba

我有两个电子表格,一个是名称列,然后是一堆时间列。如果某个人被安排在那个时间段,他们在该列中有一个1。我还有一个计划表,其中包括顶部和时间的日期,需要填充一个名称列表。我试图写一个宏来自动填充它。当特定日期/时间的所有时段都已满时,它工作得很好。星期一早上6点到8点,星期一早上8点到10点都有6个插槽,我运行我的宏,它们完全填满。但是如果星期一早上6点到8点有5人报名而不是6人,那么8-10点的第一个人将在6-8的最后一个位置结束。这是代码:

Sub copytoschedule()


Dim i As Integer

Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets(" rawweekdayw")

Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Sheets("Weekdays W")

'For Mon 6-8am

For i = 3 To ws1.Cells(ws1.Rows.Count, 2).End(xlUp).Row

Dim rowcount As Integer

rowcount = ws2.Cells(40, 2).End(xlUp).Row + 1

    If ws1.Cells(i, 4) = 1 Then ws2.Cells(rowcount, 2).Value = ws1.Cells(i, 2).Value

Next i


'For Mon 8-10am

For i = 3 To ws1.Cells(ws1.Rows.Count, 2).End(xlUp).Row

Dim rowcount2 As Integer

rowcount2 = ws2.Cells(40, 2).End(xlUp).Row + 1

    If ws1.Cells(i, 5) = 1 Then ws2.Cells(rowcount2, 2).Value = ws1.Cells(i, 2).Value

Next i

我试图通过用以下代码替换第二个时间段的rowcount变量来解决这个问题:

rowcount2 = max((ws2.Cells(40, 2).End(xlUp).Row + 1),8) 

因为该时间段的行从第8行开始。当我尝试运行它时,VBA说它内存不足并且擅长崩溃。帮助?!?

0 个答案:

没有答案