我有以下代码用于在表格中插入新行(也将表格下方的内容向下移动),但它使用的是ActiveCell。是否可以将它用于定义的工作表,表名和代码下面定义的多行。
With ActiveCell.ListObject
ActiveSheet.Rows(.HeaderRowRange.Row + .ListRows.Count + 1).insert
.Resize (ActiveSheet.Range(.HeaderRowRange(1, 1), Cells(.HeaderRowRange.Row +
.ListRows.Count + 1, .ListColumns.Count)))
End With
Set newsheet = ThisWorkbook.Sheets("GeneralInfo")
tablename = "Table1"
newrows = 15
答案 0 :(得分:0)
首先,您如何找到ListObject?我通常使用这种语法:
Range("Table1").ListObject
范围("表1和#34;)位允许我找到ListObject,即使我不知道它在哪个表格上。这是有效的,因为Tables也是命名范围,您可以按名称进行寻址。所以你只需说"转到名为Table1的命名范围,然后找到生活在那里的ListObject"。否则,您需要事先知道ListObject所处的工作表,并使用以下命令:
Worksheets("SomeSheet").Listobjects("Table1")
...直到有一天你将表格移到另一张表格并且忘记更新你的代码时,它才能正常工作。
接下来,如何添加行?要添加单个listrow,只需使用:
Range("Table1").ListObject.ListRows.Add X
...其中X是您希望在上面添加的ListRow编号。将1放在顶部,将2放在第二个,依此类推。将其留空并将ListRow添加到底部。
但这只能让你一次添加1个ListRow。所以你有三个选择:
只需将整个工作表行插入您想要新ListRows的位置,使用以下内容:
行(" 16:30")。插入Shift:= xlDown