我正在寻找一种方法,在具有多个表的工作表中将额外的单元格添加到表中。表A(B列到F列)应在所选单元格下获得一个额外的行。表B(列H到J)应该是固定的:当我在表A中的第8行添加额外的单元格时,表B不应该改变。我只能找到EntireRow.Insert,但不能找到特定的单元格。
到目前为止我的代码:
Sub Button1_Click()
Dim anyR As Range
Set anyR = Selection.SpecialCells(xlVisible)
Selection.SpecialCells(xlVisible).Offset(1, 0).EntireRow.Insert
anyR.Offset(1, 0).Select
End Sub
但它也将细胞添加到表B中。 Thanx看看这个!
答案 0 :(得分:0)
以下内容将在当前选择下添加一个单元格:
Selection.Offset(1, 0).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
答案 1 :(得分:0)
Selection.SpecialCells(xlVisible).Offset(1, 0).EntireRow.Insert
您在工作表中插入一行 - 就像右键单击行标题然后选择“插入”一样。
如果你在同一张纸上有两个表,插入点有行,那么是的,两张桌子都会额外获得一行。
如果要向一个表添加行,请使用表而不是Selection
(您几乎没有需要无论如何都要使用Selection
:
Dim table1 As ListObject
Set table1 = Worksheeets("MyAwesomeSheet").ListObjects(1)
table1.ListRows.Add Position:=5, AlwaysInsert:=True
这会在MyAwesomeSheet
的第一个表格中插入一个新行,在该表格中排成第5行。
请注意,这假设OP中的“表”指的是电子表格中的实际表,即目标表中有ListObject
个对象可供使用。
答案 2 :(得分:0)
我找到了一种方法:
Range("A" & ActiveCell.Row & ":L" & ActiveCell.Row).Select
Selection.Copy
Selection.Offset(1, 0).Insert Shift:=xlDown
Range("A" & ActiveCell.Row & ":L" & ActiveCell.Row).Offset(1, 0).ClearContents
ActiveCell.Offset(1, 0).Select
在这种情况下,选择列A到L. 谢谢你的帮助!
KR,freek