我一直试图解决这个问题一段时间,但我想不出答案。一些上下文:我有两个工作表。在第一张表格中,我有一个充满名字的专栏。在第二张表中,我的轮廓有10行显示名称。但是,如果在第一页中有11个名称,则第11个名称不会出现在第2页中,因为只有10行。我需要弄清楚的是如何为第11个名称插入一行(或者根据添加的名称数量为n)。一旦我添加第n行,我会自动填充公式,这是最简单的部分。我无法弄清楚的部分是如何插入行。
我在想的是插入一个COUNT函数来计算不同的名称并以这种方式插入行。但有没有办法可以做到这一点,所以我的一个工作表中的单元格中不会有随机数(数字为COUNT)?
答案 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