如何根据VBA中列的条件数添加行?

时间:2017-07-09 22:16:04

标签: excel vba excel-vba

我一直试图解决这个问题一段时间,但我想不出答案。一些上下文:我有两个工作表。在第一张表格中,我有一个充满名字的专栏。在第二张表中,我的轮廓有10行显示名称。但是,如果在第一页中有11个名称,则第11个名称不会出现在第2页中,因为只有10行。我需要弄清楚的是如何为第11个名称插入一行(或者根据添加的名称数量为n)。一旦我添加第n行,我会自动填充公式,这是最简单的部分。我无法弄清楚的部分是如何插入行。

我在想的是插入一个COUNT函数来计算不同的名称并以这种方式插入行。但有没有办法可以做到这一点,所以我的一个工作表中的单元格中不会有随机数(数字为COUNT)?

1 个答案:

答案 0 :(得分:0)

根据我的理解,您希望插入n-10行,其中n是名称的总行数。

试试这个

Sub test()

Dim startr, endr As Range
Set startr = Range("A7")        'Set this to be the first row of your list of names

If Not startr.Value = "" Then
    With Sheets("Sheet1")
        Do Until startr.Offset(i).Value = ""
        i = i + 1
        Loop
    End With
    Set endr = startr.Offset(i - 1)     'endr is now the last row of the names

    totalr = Range(startr, endr).Rows.Count     'totalr is the total number of rows/names
    If totalr > 10 Then
        addr = totalr - 10      'addr is the number of rows you need to add
        MsgBox "You need to insert  " & addr & "  more rows."

        'The following finds the last row of column A and inserts addr number of rows
        Dim lastr As Range
        Set lastr = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp)
        lastr.Offset(1).EntireRow.Resize(addr).Insert
    Else
    MsgBox "Number of rows/names is  " & totalr & "  which is less than 10, so no rows are being added."
    End If
Else
MsgBox startr.Address(0, 0) & "  is empty."

End If

End Sub