2017-01-16 77 views
0

我正在寻找一种将多个单元格添加到表格中的方法,该表格中包含多个表格。表A(列B到F)应该在选定的单元格下获得额外的一行。表B(列H到J)应该是固定的:当我在表A的第8行添加额外的单元格时,表B不应该改变。我只能找到EntireRow.Insert,但不能找到特定的单元格。将单元格添加到VBA中的表格

到目前为止我的代码:

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为好。感谢看看这个!

+0

是“tables”* actual *表,还是他们正是您所说的这些范围? Excel知道他们是*表*(它*确实有所作为)? –

回答

0

下面将添加单元格的当前选择下:

Selection.Offset(1, 0).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
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的第一个表中插入一个新行,在该表中创建一个空白的第五行。请注意,这里假定OP中的“表格”是指电子表格中实际的表格,即目标表单具有ListObject对象。

+0

谢谢,非常有帮助! (因为Worksheeets中额外的'e',所以没有先工作)) 我想在当前选定的单元格下添加额外的行。我怎么能做到这一点? 再次感谢您的帮助! 亲切的问候, –

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

相关问题