2017-01-16 7 views
0

Я ищу способ добавления лишних ячеек в таблицу на листе с несколькими таблицами. Таблица A (Столбец B-F) должна содержать дополнительную строку под выбранной ячейкой. Таблица B (колонка H-J) должна быть исправлена: когда я добавляю дополнительные ячейки в строку 8 в таблице A, таблица 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, а также. Thanx за то, что заглянул в это!

+0

«Таблицы» * фактические * таблицы, или они именно то, что вы называете этими диапазонами? Знает ли Excel, что они * таблицы * (это * делает * делает разницу)? –

ответ

0

Следующий добавит ячейку под текущим выбором:

Selection.Offset(1, 0).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
0
Selection.SpecialCells(xlVisible).Offset(1, 0).EntireRow.Insert 

Вы вставка строки в листе - это как правая кнопка мыши на строку заголовка и затем выберите «insert».

Если у вас есть две таблицы на том же листе, с строками в точке ввода, то да, обе таблицы будут зарабатывать дополнительную строку.

Если вы хотите добавить строки в один таблицы, а затем работать с за столом вместо Selection (вы вряд ли когда-либо действительно нужно работать с Selection в любом случае):

Dim table1 As ListObject 
Set table1 = Worksheeets("MyAwesomeSheet").ListObjects(1) 

table1.ListRows.Add Position:=5, AlwaysInsert:=True 

Это будет вставьте новую строку в первую таблицу MyAwesomeSheet, сделав пустую пятую строку в этой таблице.

Обратите внимание, что это предполагает «таблица» в OP имеет в виду фактических таблиц в таблицу, то есть, что целевой лист имеет ListObject объекты, чтобы играть с.

+0

Спасибо, очень полезно! (не работал в первую очередь из-за дополнительного «e» в Worksheeets :)) Я хотел бы добавить дополнительную строку под текущей выбранной ячейкой. Как я мог это достичь? Еще раз спасибо за помощь! С уважением, –

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 

В этом случае, столбец А до L выбраны. Спасибо за помощь!

KR, freek

 Смежные вопросы

  • Нет связанных вопросов^_^