将单元格添加到VBA中的表

时间:2017-01-16 15:18:44

标签: excel vba insert

我正在寻找一种方法,在具有多个表的工作表中将额外的单元格添加到表中。表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看看这个!

3 个答案:

答案 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