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