从1到n循环直到行

时间:2018-08-07 14:07:35

标签: excel vba excel-vba

基本上,我有一个名称列表,希望将它们分为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专家。

1 个答案:

答案 0 :(得分:0)

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

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