Vba 如何重复循环直到电子表格结束?

Vba 如何重复循环直到电子表格结束?,vba,excel,Vba,Excel,我需要关于如何重复下面这个循环的帮助,直到我的电子表格结束。我在下面构建了两个循环来处理前50行,效果很好。但是,我还有7000行需要应用这两个循环(循环一次应该处理50行) 第一个循环根据列K中的值,以冒号O为单位分配1或0的值 然后,第二个循环向列O中不包含0的每个单元添加1,直到列O中的50个单元数组的和等于64为止 Sub assign_values() For i = 2 To 51 If Cells(i, "K").Value > 0

我需要关于如何重复下面这个循环的帮助,直到我的电子表格结束。我在下面构建了两个循环来处理前50行,效果很好。但是,我还有7000行需要应用这两个循环(循环一次应该处理50行)

第一个循环根据列K中的值,以冒号O为单位分配1或0的值

然后,第二个循环向列O中不包含0的每个单元添加1,直到列O中的50个单元数组的和等于64为止

Sub assign_values()

        For i = 2 To 51

            If Cells(i, "K").Value > 0 Then

               Cells(i, "O").Value = 1
               Else
               Cells(i, "O").Value = 0

          End If

      Next i

        For i = 2 To 51

            If Application.WorksheetFunction.Sum(Range("O:O")) = 64 Then Exit Sub
            Cells(i, "O").Value = Cells(i, "O").Value + 1

        Next i

    End Sub
同样,此循环对于前50行也可以正常工作。但是,我似乎不知道如何将此循环应用于接下来的7000行

你们帮了我大忙,我很感激你们的回答

谢谢

G

子赋值()
常数块_SZ,长度=50
尺寸rng、c、tot

设置rng=Range(“O2”)。调整大小(BLOCK_SZ,1)'您可以搜索LastRow为什么要循环两次?另外,只需更改too xx值,您应该很好,或者尝试动态引用使用的范围,或者将lastrow作为Luuklag statedWorked。谢谢蒂姆!
Sub assign_values()

    Const BLOCK_SZ As Long = 50
    Dim rng, c, tot

    Set rng = Range("O2").Resize(BLOCK_SZ, 1) '<< first block of 50 rows

    'keep going while there's content in Col K (you may need to adjust
    '  where you check for content)
    Do While Application.CountA(rng.Offset(0, -4)) > 0

        For Each c In rng.Cells
            c.Value = IIf(c.Offset(0, -4).Value > 0, 1, 0) 'based on ColK
        Next c

        tot = Application.Sum(rng) '<< only need this once, then keep count
        For Each c In rng.Cells
            If tot < 64 Then
                c.Value = c.Value + 1
                tot = tot + 1
            Else
                Exit For
            End If
        Next c

        Set rng = rng.Offset(BLOCK_SZ, 0) '<< next block of cells
    Loop

End Sub