首页 > 解决方案 > 循环 1 到 n 直到行结束

问题描述

基本上,我有一个名单,我想将它们分成 n 个组,例如 4 个。

我在 A 列中有名称,在 D 列中有组号,我的代码似乎有效,如下所示:

Private Sub CommandButton1_Click()
Dim S As Long, E As Long, I As Long, N As Long, a As Long, b As Long
With ActiveSheet
    N = .Cells(Rows.Count, 2).End(xlUp).Row
    .Range(Cells(2, 4), Cells(N, 4)).ClearContents
    S = 1 'smallest number
    E = 4 'largest numbr
    I = N / 4 'times of repeat
    N = 1
    For a = 1 To I Step 1
        For b = S To E Step 1
            .Cells(N + 1, 4).Value = b
            N = N + 1
        Next b
    Next a
End With
End Sub

这种设计的问题是,如果行数没有被 4 整除,则会创建一个空白行,并输入剩余的数字。遗憾的是,这不是我想要的,因为我需要连接数据并将它们合并到 Word 中。当前的解决方案将为我生成的文档创建空白条目。

我想知道是否有人可以帮助我,因为我不是 VBA 专家。

标签: vbaexcel

解决方案


我想我找到了一个愚蠢的解决方案,只需通过检测 A 列的单元格为空的位置来删除整行

On Error Resume Next
Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

推荐阅读