我试图在一个只有一行的表中插入多行(在第一行中填写公式)。问题是我选择了多行来插入新行,而最后一行已经在它下面的第二个表的区域中。
Sub RowsAction(ByRef targetSh As Worksheet, resizeSh As Worksheet, tablename As String)
Dim i As Integer
Dim last As String
last = targetSh.Range("A1", targetSh.Cells(Rows.Count, "A").End(xlUp)).Count - 2
If last > 0 Then
With resizeSh
MsgBox tablename & last
resizeSh.Rows(.ListObjects(tablename).HeaderRowRange.Row + .ListObjects(tablename).ListRows.Count + 1 & ":" & .ListObjects(tablename).HeaderRowRange.Row + .ListObjects(tablename).ListRows.Count + 5).Insert Shift:=xlShiftDown
End With
End If
End Sub
上面的代码将向表1添加5个新行。如果我将+5更改为+6,它将抛出一个错误,因为最后一行已经占用了表2的空间。理想情况下,它将使用变量“last”,但为了测试,我们可以使用数字。问题是我需要为工作表的整行添加新行。不仅仅是table-这样它就能正确地向下移动所有的东西。有什么想法吗?
1条答案
按热度按时间vq8itlhq1#
你应该这样做,以添加行到您的表:
在第5行上方插入一行
在表格底部添加行
例如,要在表格中插入多行,您可以执行以下操作:
让我们测试一下:
存档日期:
存档时间:
因此不会扭曲相邻像元Edit 2
要避免循环,请执行以下操作: