2017-01-16 128 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

相關問題