Vba excel вставить строку снизу

Вставка диапазона со сдвигом ячеек вправо или вниз методом Insert объекта Range. Вставка и перемещение строк и столбцов из кода VBA Excel. Примеры.

Range.Insert – это метод, который вставляет диапазон пустых ячеек (в том числе одну ячейку) на рабочий лист Excel в указанное место, сдвигая существующие в этом месте ячейки вправо или вниз. Если в буфере обмена содержится объект Range, то вставлен будет он со своими значениями и форматами.

Синтаксис

Expression.Insert(Shift, CopyOrigin)

Expression – выражение (переменная), возвращающее объект Range.

Параметры

Параметр Описание Значения
Shift Необязательный параметр. Определяет направление сдвига ячеек. Если параметр Shift опущен, направление выбирается в зависимости от формы* диапазона. xlShiftDown (-4121) – ячейки сдвигаются вниз;
xlShiftToRight (-4161) – ячейки сдвигаются вправо.
CopyOrigin Необязательный параметр. Определяет: из каких ячеек копировать формат. По умолчанию формат копируется из ячеек сверху или слева. xlFormatFromLeftOrAbove (0) – формат копируется из ячеек сверху или слева;
xlFormatFromRightOrBelow (1) – формат копируется из ячеек снизу или справа.

* Если диапазон горизонтальный или квадратный (количество строк меньше или равно количеству столбцов), ячейки сдвигаются вниз. Если диапазон вертикальный (количество строк больше количества столбцов), ячейки сдвигаются вправо.

Примеры

Простая вставка диапазона

Вставка диапазона ячеек в диапазон «F5:K9» со сдвигом исходных ячеек вправо:

Range(«F5:K9»).Insert Shift:=xlShiftToRight

Если бы параметр Shift не был указан, сдвиг ячеек, по умолчанию, произошел бы вниз, так как диапазон горизонтальный.

Вставка вырезанного диапазона

Вставка диапазона, вырезанного в буфер обмена методом Range.Cut, из буфера обмена со сдвигом ячеек по умолчанию:

Range(«A1:B6»).Cut

Range(«D2»).Insert

Обратите внимание, что при использовании метода Range.Cut, точка вставки (в примере: Range("D2")) не может находится внутри вырезанного диапазона, а также в строке или столбце левой верхней ячейки вырезанного диапазона вне вырезанного диапазона (в примере: строка 1 и столбец «A»).

Вставка скопированного диапазона

Вставка диапазона, скопированного в буфер обмена методом Range.Copy, из буфера обмена со сдвигом ячеек по умолчанию:

Range(«B2:D10»).Copy

Range(«F2»).Insert

Обратите внимание, что при использовании метода Range.Copy, точка вставки (в примере: Range("F2")) не может находится внутри скопированного диапазона, но в строке или столбце левой верхней ячейки скопированного диапазона вне скопированного диапазона находится может.

Вставка и перемещение строк

Вставка одной строки на место пятой строки со сдвигом исходной строки вниз:


Вставка четырех строк на место пятой-восьмой строк со сдвигом исходных строк вниз:


Вставка строк с использованием переменных, указывающих над какой строкой осуществить вставку и количество вставляемых строк:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

Sub Primer1()

Dim n As Long, k As Long, s As String

‘Номер строки, над которой необходимо вставить строки

n = 8

‘Количесто вставляемых строк

k = 4

‘Указываем адрес диапазона строк

s = n & «:» & (n + k 1)

‘Вставляем строки

Rows(s).Insert

End Sub

‘или то же самое с помощью цикла

Sub Primer2()

Dim n As Long, k As Long, i As Long

n = 8

k = 4

    For i = 1 To k

        Rows(n).Insert

    Next

End Sub


Перемещение второй строки на место шестой строки:

Rows(2).Cut

Rows(6).Insert

Вторая строка окажется на месте пятой строки, так как третья строка заместит вырезанную вторую строку, четвертая встанет на место третьей и т.д.


Перемещение шестой строки на место второй строки:

Rows(6).Cut

Rows(2).Insert

В этом случае шестая строка окажется на месте второй строки.

Вставка и перемещение столбцов

Вставка одного столбца на место четвертого столбца со сдвигом исходного столбца вправо:


Вставка трех столбцов на место четвертого-шестого столбцов со сдвигом исходных столбцов вправо:


Перемещение третьего столбца на место седьмого столбца:

Columns(3).Cut

Columns(7).Insert

Третий столбец окажется на месте шестого столбца, так как четвертый столбец заместит вырезанный третий столбец, пятый встанет на место четвертого и т.д.


Перемещение седьмого столбца на место третьего столбца:

Columns(7).Cut

Columns(3).Insert

В этом случае седьмой столбец окажется на месте третьего столбца.


I want to build a macro that inserts a row below the selected cell with the same format. This is the code I have so far:

Public Sub insertRowBelow()
ActiveCell.Offset(1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrAbove
End Sub

The problem is: This code only partially transfers the format. It does use the same background color for the new row, but it does not use the borders/frames for the cells. How can I achieve that?

asked Mar 9, 2015 at 13:43

derMax's user avatar

derMaxderMax

3554 gold badges7 silver badges17 bronze badges

The easiest option is to make use of the Excel copy/paste.

Public Sub insertRowBelow()
ActiveCell.Offset(1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrAbove
ActiveCell.EntireRow.Copy
ActiveCell.Offset(1).EntireRow.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End Sub

answered Mar 9, 2015 at 13:59

Eddy's user avatar

EddyEddy

5343 silver badges17 bronze badges

3

Private Sub cmdInsertRow_Click()

    Dim lRow As Long
    Dim lRsp As Long
    On Error Resume Next

    lRow = Selection.Row()
    lRsp = MsgBox("Insert New row above " & lRow & "?", _
            vbQuestion + vbYesNo)
    If lRsp <> vbYes Then Exit Sub

    Rows(lRow).Select
    Selection.Copy
    Rows(lRow + 1).Select
    Selection.Insert Shift:=xlDown
    Application.CutCopyMode = False

   'Paste formulas and conditional formatting in new row created
    Rows(lRow).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone

End Sub

This is what I use. Tested and working,

Thanks,

answered Sep 10, 2016 at 19:42

Donald's user avatar

0

When inserting a row, regardless of the CopyOrigin, Excel will only put vertical borders on the inserted cells if the borders above and below the insert position are the same.

I’m running into a similar (but rotated) situation with inserting columns, but Copy/Paste is too slow for my workbook (tens of thousands of rows, many columns, and complex formatting).

I’ve found three workarounds that don’t require copying the formatting from the source row:

  1. Ensure the vertical borders are the same weight, color, and pattern above and below the insert position so Excel will replicate them in your new row. (This is the «It hurts when I do this,» «Stop doing that!» answer.)

  2. Use conditional formatting to establish the border (with a Formula of «=TRUE»). The conditional formatting will be copied to the new row, so you still end up with a border.Caveats:

    • Conditional formatting borders are limited to the thin-weight lines.
    • Works best for sheets where borders are relatively consistent so you don’t have to create a bunch of conditional formatting rules.
  3. Set the border on the inserted row in VBA after inserting the row. Setting a border on a range is much faster than copying and pasting all of the formatting just to get a border (assuming you know ahead of time what the border should be or can sample it from the row above without losing performance).

answered Oct 19, 2016 at 19:35

richardtallent's user avatar

richardtallentrichardtallent

34.5k14 gold badges82 silver badges123 bronze badges

well, using the Macro record, and doing it manually, I ended up with this code .. which seems to work .. (although it’s not a one liner like yours ;)

lrow = Selection.Row()
Rows(lrow).Select
Selection.Copy
Rows(lrow + 1).Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
Selection.ClearContents

(I put the ClearContents in there because you indicated you wanted format, and I’m assuming you didn’t want the data ;) )

answered Mar 9, 2015 at 13:55

Ditto's user avatar

DittoDitto

3,2241 gold badge14 silver badges28 bronze badges

1

0 / 0 / 0

Регистрация: 10.09.2011

Сообщений: 4

1

Макросы вставки строки сверху/снизу…

10.09.2011, 16:07. Показов 89125. Ответов 11


Студворк — интернет-сервис помощи студентам

Здравствуйте!

Прошу вас помочь, сам я точно не справлюсь!!

В таблице, скажем, из 4-х столбцов (A,B,C,D) необходимо добавить строку сверху. При этом по столбцу A происходит автоматическая пере-нумерация. По столбцу D считается произведение B и C.

То же самое для добавления строки снизу.

Прикрепил файл, содержащий таблицу. В силу своих возможностей в ней сделал макросы для Удаления строк. А со Вставками большой ступор. Смог только частично написать вставку снизу, но как сделать автоматическую нумерацию и формулу не знаю.

Заранее благодарен!



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

10.09.2011, 16:07

11

toiai

3217 / 966 / 223

Регистрация: 29.05.2010

Сообщений: 2,085

10.09.2011, 18:31

2

Удаление строки предполагает текущую строку, зачем заморочка сверху снизу, если можно сместить курсор вверх или вниз и удалить, тоже самое со ставкой…

Вставить строку сверху можно так:

Visual Basic
1
Rows("11:11").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Добавлено через 6 минут
Удалить строку

Visual Basic
1
Rows(11).Delete

Добавлено через 8 минут
Вставить строку снизу:

Visual Basic
1
Rows("11:11").Insert Shift:=xlUp, CopyOrigin:=xlFormatFromLeftOrAbove



1



Frank Nilson

0 / 0 / 0

Регистрация: 10.09.2011

Сообщений: 4

10.09.2011, 21:15

 [ТС]

3

Цитата
Сообщение от toiai
Посмотреть сообщение

Удаление строки предполагает текущую строку, зачем заморочка сверху снизу, если можно сместить курсор вверх или вниз и удалить, тоже самое со ставкой…

Toiai, спасибо! Так действительно проще.

А каким образом прописать автоматический подсчет формулы в столбце D и автоматическую нумерацию в столбце А при добавлении строки сверху/снизу? В этом вся загвоздка…

Добавлено через 25 минут

Цитата
Сообщение от toiai
Посмотреть сообщение

Вставить строку снизу:

Visual Basic
1
Rows("11:11").Insert Shift:=xlUp, CopyOrigin:=xlFormatFromLeftOrAbove

В этом случае вставляет снизу строки 11. А мне нужно было вставить строку снизу самой последней строки таблицы, поэтому я использовал для удаления и вставки ту заморочку=))



0



toiai

3217 / 966 / 223

Регистрация: 29.05.2010

Сообщений: 2,085

10.09.2011, 22:54

4

Вместо 11 строки применить значение последней строки. Поскольку последняя строка итоговая, предлагаю вставлять строку сверху, при этом автоматически и формат вставится. По поводу нумерации, перед вставкой считать значение ячейки с предитоговой строки

Visual Basic
1
номер=Cells(nRow-1,1)

По формуле:

Visual Basic
1
Cells(nRow,4).FormulaR1C1 = "=RC[-2]*RC[-1]"

Добавлено через 10 минут
Все-таки надо вставлять строку с предпоследней строки снизу (т.е. использовать xlUp), при этом автоматически расширится диапазон подсчета в итоговой строке.



1



0 / 0 / 0

Регистрация: 10.09.2011

Сообщений: 4

10.09.2011, 23:42

 [ТС]

5

toiai, логику понимаю, но я не могу написать сам макрос, поскольку никогда не программировал. Вы не мог ли бы показать пример одного макроса на добавление строки сверху с автоматической нумерацией и формулой по той таблице? Буду очень благодарен!



0



3217 / 966 / 223

Регистрация: 29.05.2010

Сообщений: 2,085

11.09.2011, 10:38

6

Вот примерно так.



1



730 / 406 / 95

Регистрация: 19.12.2010

Сообщений: 756

11.09.2011, 12:32

7

Вариант вставки строки сверху.



1



0 / 0 / 0

Регистрация: 10.09.2011

Сообщений: 4

11.09.2011, 12:51

 [ТС]

8

Друзья! Спасибо огромное! Очень выручили!!



0



syserr

14.05.2013, 08:43

9

в продолжении темы прошу помощи в решении аналогичного вопроса применительно к моему файлу xls.
Требуется:
1. Автоматическая нумерация строк в первом столбце при их добавлении по кнопке
2. Добавление новой строки по кнопке сразу после шапки с заголовками A9
3. При добавлении новой строки должна добавляться формула в столбцы G и H путем умножения на переменную n столбцов E и F
4. Подсчет итого реализован формулой суммы, но при удалении всех ячеек она не подсчитывает итог

Заранее благодарствую.

0 / 0 / 0

Регистрация: 26.06.2013

Сообщений: 7

26.06.2013, 12:18

10

Ребят, чтобы не создавать отдельную тему, подскажите:

Есть столбец с данными А1:

необходимо добавить 2 пустые строки после каждой заполненной строки

То есть по клику по кнопке, запускается макрос, добавляющий пустые 2 строки после строки А1 (не менее 800 вниз)



0



Аксима

6076 / 1320 / 195

Регистрация: 12.12.2012

Сообщений: 1,023

26.06.2013, 12:37

11

Здравствуйте, @koskokoss,

Вот примерное решение:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub MakeSpace()
 
    Const Îáðàáîòàòü_ñòðîê_ìèíèìóì = 800
    Const Âñòàâèòü_ñòðîê_ïîñëå_çàïîëíåííîé = 2
    
    Dim i As Long, j As Long, cell As Range
    
    Application.ScreenUpdating = False
    For i = Îáðàáîòàòü_ñòðîê_ìèíèìóì To 3 Step -1
        Set cell = Cells(i, 1)
        If Not IsEmpty(cell) Then
            For j = 1 To Âñòàâèòü_ñòðîê_ïîñëå_çàïîëíåííîé
                cell.Insert Shift:=xlDown
            Next j
        End If
    Next i
    Application.ScreenUpdating = True
 
End Sub

С уважением,

Aksima



1



0 / 0 / 0

Регистрация: 26.06.2013

Сообщений: 7

26.06.2013, 13:32

12

Спасибо, то что нужно, только вставляет после второй строки(



0



Содержание

  1. VBA Excel. Метод Range.Insert (вставка со сдвигом ячеек)
  2. Метод Range.Insert
  3. Синтаксис
  4. Параметры
  5. Примеры
  6. Простая вставка диапазона
  7. Вставка вырезанного диапазона
  8. Вставка скопированного диапазона
  9. Вставка и перемещение строк
  10. Vba excel вставить строку снизу
  11. Как всегда вставлять пустую строку внизу, а не вверху в Excel?
  12. Всегда вставляйте пустую строку ниже, а не вверху с кодом VBA
  13. VBA Вставить строку — Как вставить строку в Excel, используя код VBA?
  14. Excel VBA Вставить строку
  15. Как вставить строки в Excel VBA?
  16. Пример № 1 — Использование всей строки
  17. Пример № 2 — Использование номеров строк
  18. Пример № 3 — Использование активной ячейки
  19. Пример № 4 — Использование активной ячейки со смещением
  20. То, что нужно запомнить
  21. Рекомендуемые статьи
  22. VBA Excel — вставьте строку ниже в том же формате, включая границы и фреймы
  23. 4 ответа
  24. VBA Insert Row (пример, код) | Лучшие методы 5 Excel VBA для вставки строки
  25. Вставить строку с помощью VBA Excel
  26. Как вставить строку в Excel VBA?
  27. Метод №1 — Использование метода вставки
  28. Метод № 2 — Использование свойства всей строки
  29. Метод №3 — Использование номеров строк
  30. Метод №4 — Использование свойства активной ячейки
  31. Method #5 – Using Active Cell Property with Offset Function
  32. Insert Alternative Rows

VBA Excel. Метод Range.Insert (вставка со сдвигом ячеек)

Вставка диапазона со сдвигом ячеек вправо или вниз методом Insert объекта Range. Вставка и перемещение строк и столбцов из кода VBA Excel. Примеры.

Метод Range.Insert

Синтаксис

Expression – выражение (переменная), возвращающее объект Range.

Параметры

Параметр Описание Значения
Shift Необязательный параметр. Определяет направление сдвига ячеек. Если параметр Shift опущен, направление выбирается в зависимости от формы* диапазона. xlShiftDown (-4121) – ячейки сдвигаются вниз;
xlShiftToRight (-4161) – ячейки сдвигаются вправо.
CopyOrigin Необязательный параметр. Определяет: из каких ячеек копировать формат. По умолчанию формат копируется из ячеек сверху или слева. xlFormatFromLeftOrAbove (0) – формат копируется из ячеек сверху или слева;
xlFormatFromRightOrBelow (1) – формат копируется из ячеек снизу или справа.

* Если диапазон горизонтальный или квадратный (количество строк меньше или равно количеству столбцов), ячейки сдвигаются вниз. Если диапазон вертикальный (количество строк больше количества столбцов), ячейки сдвигаются вправо.

Примеры

Простая вставка диапазона

Вставка диапазона ячеек в диапазон «F5:K9» со сдвигом исходных ячеек вправо:

Если бы параметр Shift не был указан, сдвиг ячеек, по умолчанию, произошел бы вниз, так как диапазон горизонтальный.

Вставка вырезанного диапазона

Вставка диапазона, вырезанного в буфер обмена методом Range.Cut, из буфера обмена со сдвигом ячеек по умолчанию:

Вставка скопированного диапазона

Вставка диапазона, скопированного в буфер обмена методом Range.Copy, из буфера обмена со сдвигом ячеек по умолчанию:

Вставка и перемещение строк

Вставка одной строки на место пятой строки со сдвигом исходной строки вниз:

Вставка четырех строк на место пятой-восьмой строк со сдвигом исходных строк вниз:

Вставка строк с использованием переменных, указывающих над какой строкой осуществить вставку и количество вставляемых строк:

Источник

Vba excel вставить строку снизу

Как всегда вставлять пустую строку внизу, а не вверху в Excel?

Как все мы знаем, при вставке пустой строки на лист пустая строка всегда будет вставлена ​​над выбранной строкой или ячейкой. Но иногда вам может потребоваться вставить строку под выбранной ячейкой или строкой. Как бы вы могли решить эту задачу в Excel?

Всегда вставляйте пустую строку ниже, а не вверху с кодом VBA

В этой статье я расскажу о вставке пустой строки под выбранной ячейкой или строкой, нажав кнопку. Пожалуйста, выполните следующие действия:

1. Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.

2, Затем нажмите Вставить > Модулии вставьте следующий макрос в окно модуля.

Код VBA: всегда вставляйте пустую строку внизу, а не вверху

3. Затем сохраните и закройте это окно кода. Далее, пожалуйста, нажмите Вставить > Формы > Прямоугольные, см. снимок экрана:

4. Затем нарисуйте прямоугольную кнопку с помощью курсора и отформатируйте ее так, как вам нужно. Смотрите скриншот:

5. После форматирования в соответствии с вашими потребностями щелкните его правой кнопкой мыши и выберите Назначить макрос вариант, см. снимок экрана:

6. В Назначить макрос диалоговом окне выберите имя макроса, которое вы только что вставили, из Имя макроса список, см. снимок экрана:

7, Затем нажмите OK чтобы закрыть диалоговое окно. Теперь, когда вы щелкните любую ячейку, а затем нажмите кнопку, пустая строка будет вставлена ​​над выбранной ячейкой, как показано ниже:

Источник

VBA Вставить строку — Как вставить строку в Excel, используя код VBA?

Excel VBA Вставить строку

Поскольку в этом слове есть две вещи, одна — VBA, а другая — Insert Row. В этом я объясню, как вставить строку в Excel, используя VBA (Visual Basic для приложений).

VBA — это язык программирования для тех, кто работает в Excel и других программах Office, поэтому можно автоматизировать задачи в Excel, написав так называемые макросы. Используя кодирование VBA, мы можем выполнять практически все задачи, которые мы выполняем в Excel, так как мы можем копировать, вставлять, удалять и т. Д.

Вставить строку — используется для вставки строки в Excel между другой строкой с помощью автоматизации, т.е. одним щелчком мыши.

Предположим, что мы вводим данные сотрудника в Excel, и мы пропустили некоторых сотрудников и хотим вставить данные недостающих между ними, поэтому нам нужно создать пробел и вставить строку для ввода их данных. Вместо вставки строки одна за другой мы можем автоматизировать задачу вставки строк с использованием VBA и создания макросов.

Есть много способов, с помощью которых мы можем вставить строки, используя кодирование VBA. Функция, используемая для вставки строки в VBA:

Диапазон (). Ряд (). EntireRow.Insert

Давайте рассмотрим, у нас есть набор данных, который состоит из столбцов, таких как Имя клиента , Продукт, Продажи, Количество, Стоимость доставки, Приоритет заказа.

Предположим, что нам нужно сместить столбцы вниз, чтобы вставить 3 новые строки между 3 и 4, чтобы вставить новую отсутствующую запись. Вместо того, чтобы вставлять строку один за другим, мы автоматизируем это, чтобы вставить все 3 строки одним щелчком мыши.

Как вставить строки в Excel VBA?

Ниже приведены различные примеры вставки строк в Excel с использованием кода VBA.

Вы можете скачать этот шаблон Excel для вставки строк VBA здесь — Шаблон Excel для вставки строк VBA

Пример № 1 — Использование всей строки

Выполните следующие шаги, чтобы вставить строки в Excel, используя код VBA.

Шаг 1: Для создания макроса нам нужно выбрать вкладку «Разработчик».

Шаг 2. После открытия вкладки «Разработчик» вставьте кнопку из группы «Элементы управления». Нажмите « Вставить» и выберите первый вариант из элементов управления ActiveX. Как вы можете видеть эту командную кнопку .

Шаг 3: Перетащите стрелку в любую ячейку, чтобы создать командную кнопку.

Шаг 4: Чтобы войти в функцию «Вставка», щелкните правой кнопкой мыши на кнопке «Командный», т. Е. Вставьте 3 строки и нажмите « Просмотреть код»

Шаг 5: Когда вы нажимаете на Просмотр кода, появляется следующий код.

Код:

Шаг 6: Мы должны написать наш код INSERT ROW. Как упоминалось ранее, мы должны использовать функцию Rows.EntireRow с RANGE в VBA. В этом коде мы должны вставить 3 между 3- м и 4- м .

Код:

В приведенной выше строке кода A3 — это столбец, в который мы должны вставить строку, а строки (3: 5) — то, что мы должны вставить 3 новые строки.

Шаг 7: Запустите код, нажав на кнопку « Вставить 3 строки» .

Пример № 2 — Использование номеров строк

Точно так же мы напишем код для вставки 2 строк одним нажатием кнопки.

В этом, мы должны упомянуть строку от начального ряда до конечного номера строки, используя RANGE, за которым следует INSERT, который вставит строки.

Код:

Когда мы нажимаем кнопку «Вставить 2 строки», мы видим, что 2 строки были вставлены между 3- й и 4- й строкой.

Точно так же мы можем настроить нашу функцию, чтобы вставить столько строк, сколько сможем.

Пример № 3 — Использование активной ячейки

Активная ячейка означает ячейку, которая выбрана в данный момент. Мы будем использовать активную ячейку для вставки строк. Предположим, что мы находимся в ячейке B3 и хотим вставить ячейку над ней, поэтому мы будем использовать свойство active cell. Мы будем использовать следующий код для активной ячейки.

Код:

Когда мы нажимаем кнопку «Активное свойство ячейки», мы видим, что одна ячейка вставляется над выбранной ячейкой. Выше мы выбрали B5, а ниже мы видим, что над ним вставлена ​​одна строка.

Пример № 4 — Использование активной ячейки со смещением

Предположим, мы хотим вставить строку после 3 строк активной ячейки, для этого мы будем использовать функцию OFFSET. Предположим, мы находимся в ячейке B4 и должны вставить строку после 2 строк, мы будем использовать этот код.

Код:

Когда мы нажимаем кнопку «Активная ячейка с использованием смещения», в B6 вставляется одна строка .

То, что нужно запомнить

  • Он используется для вставки строк в Excel, автоматизируя его.
  • Вставка строки VBA используется с объектом RANGE в VBA.
  • Перед началом работы включите «Включить все макросы» в настройках макроса.

Рекомендуемые статьи

Это руководство по VBA Insert Row. Здесь мы обсудим, как вставить строку в Excel, используя код VBA, а также с практическими примерами и загружаемым шаблоном Excel. Вы также можете посмотреть следующие статьи, чтобы узнать больше —

  1. Примеры функции VBA GetObject
  2. Excel Вставка нескольких строк (шаблон Excel)
  3. Как использовать функцию VBA StrConv?
  4. Руководство по Excel Вставить ярлык строки

Источник

VBA Excel — вставьте строку ниже в том же формате, включая границы и фреймы

Я хочу создать макрос, который вставляет строку под выбранной ячейкой в ​​том же формате. Вот код, который у меня есть:

Проблема в том, что этот код лишь частично передает формат. Он использует тот же цвет фона для новой строки, но не использует границы / рамки для ячеек. Как я могу этого добиться?

4 ответа

Самый простой вариант — воспользоваться копией / вставкой Excel.

Ну, используя запись макроса и делая это вручную, я получил этот код . который, похоже, работает . (хотя это не один лайнер, как у вас;)

(Я поместил туда ClearContents, потому что вы указали, что вам нужен формат, и я предполагаю, что вам не нужны данные;))

При вставке строки, независимо от CopyOrigin, Excel будет помещать вертикальные границы на вставленные ячейки только в том случае, если границы выше и ниже позиции вставки совпадают.

Я сталкиваюсь с аналогичной (но повернутой) ситуацией со вставкой столбцов, но копирование / вставка слишком медленное для моей книги (десятки тысяч строк, много столбцов и сложное форматирование).

Я нашел три обходных пути, которые не требуют копирования форматирования из исходной строки:

Убедитесь, что вертикальные границы имеют одинаковый вес, цвет и узор выше и ниже места вставки, чтобы Excel скопировал их в вашей новой строке. (Это ответ «Мне больно, когда я делаю это», «Прекратите делать это!».)

Используйте условное форматирование, чтобы установить границу (с формулой «= ИСТИНА»). Условное форматирование будет скопировано в новую строку, так что вы все равно получите границу.

  • Границы условного форматирования ограничиваются тонкими линиями.
  • Лучше всего подходит для листов с относительно согласованными границами, поэтому вам не нужно создавать набор правил условного форматирования.

Установите границу на вставленной строке в VBA после вставки строки. Установка границы диапазона намного быстрее, чем копирование и вставка всего форматирования только для получения границы (при условии, что вы заранее знаете, какой должна быть граница, или можете выбрать ее из строки выше без теряет производительность).

Это то, что я использую. Проверено и работает,

Источник

VBA Insert Row (пример, код) | Лучшие методы 5 Excel VBA для вставки строки

Вставка строки в VBA несколько отличается от вставки столбца в VBA, в столбцах мы использовали метод всего столбца, но для вставки строк мы используем метод рабочего листа с командой вставки для вставки строки, мы также предоставляем ссылку на строку, в которую мы хотим вставить еще один ряд, аналогичный столбцам.

Вставить строку с помощью VBA Excel

Мы можем выполнять почти все действия, которые мы делаем в Excel, с помощью кодирования VBA. Мы можем копировать, мы можем вставлять, мы можем удалять, и мы можем делать многие другие вещи через язык VBA. «Вставка строки» — один из таких методов, который мы часто используем в Excel. В этой статье мы покажем вам, как выполнить метод вставки строки в VBA.

Как вставить строку в Excel VBA?

Ниже приведены различные методы использования VBA для вставки строки в Excel.

Метод №1 — Использование метода вставки

В VBA для вставки строки нам нужно использовать аналогичный метод, который мы использовали на листе Excel. В VBA нам нужно использовать объект диапазона для вставки строки.

Например, посмотрите на приведенный ниже код.

Код:

Этот код переместит ячейку A1 в ячейку B1 и вставит единственную ячейку.

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

Метод № 2 — Использование свойства всей строки

Верхняя строка вставки, мы можем использовать несколько методов. Приведенный ниже метод вставит всю строку над выбранной ячейкой.

Шаг 1. Сначала укажите адрес ячейки .

Код:

Шаг 2: Вместо использования просто выберите свойство « Вся строка ».

Код:

Шаг 3: После доступа к свойству всей строки используйте метод вставки .

Код:

Это вставит строку над ячейкой A1. Поскольку A1 — первая строка, она переместится вниз по ячейке A1 в B1.

Как вы можете видеть на изображении выше, он должен вставить всю строку, а не одну ячейку.

Метод №3 — Использование номеров строк

В приведенном выше примере мы только что использовали адрес одной ячейки и вставили строку. Однако мы также можем вставить их, используя номера строк.

Предположим, вы хотите вставить строку ниже 5-й строки, сначала нам нужно указать номера строк, используя объект RANGE.

Код:

Поскольку мы упомянули всю строку как 6: 6, нам нужно использовать здесь свойство «Вся строка», мы можем напрямую использовать метод «INSERT».

Код:

Это также вставит всю строку, а не одну ячейку.

В случае, если вы хотите вставить две строки ниже 5-й строки, нам нужно сначала выбрать 2 строки, а затем использовать метод INSERT.

Это вставит две строки ниже 5-й строки.

Таким образом мы можем вставить на лист как можно больше строк.

Метод №4 — Использование свойства активной ячейки

Мы можем использовать свойство Active Cell VBA для вставки строк. Активная ячейка — это не что иное, как выбранная в данный момент ячейка.

Предположим, вы находитесь в ячейке B5 и хотите вставить строку выше, вы можете использовать свойство активной ячейки.

This will insert the row above the active cell.

Method #5 – Using Active Cell Property with Offset Function

Assume you want to insert a row after 2 rows of the active cell, we need to use Offset function to offset the number of rows.

Assume you are in the B5 cell.

If you want to insert the row after the 2nd row from the active cell then we can use the below code.

Code:

This will insert row after the 6th row.

Insert Alternative Rows

Inserting alternative rows is often I have come across many times. For the look at the below data image.

Now we need to insert alternative rows. We need to use loops to insert every alternate row.

Code:

This will insert rows like this.

You can download this VBA Insert Row Excel here. VBA Insert Row Excel Template

Источник

Как все мы знаем, при вставке пустой строки на лист пустая строка всегда будет вставлена ​​над выбранной строкой или ячейкой. Но иногда вам может потребоваться вставить строку под выбранной ячейкой или строкой. Как бы вы могли решить эту задачу в Excel?

Всегда вставляйте пустую строку ниже, а не вверху с кодом VBA


Всегда вставляйте пустую строку ниже, а не вверху с кодом VBA

В этой статье я расскажу о вставке пустой строки под выбранной ячейкой или строкой, нажав кнопку. Пожалуйста, выполните следующие действия:

1. Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.

2, Затем нажмите Вставить > Модулии вставьте следующий макрос в окно модуля.

Код VBA: всегда вставляйте пустую строку внизу, а не вверху

Sub InsertRowDown()
'Updateby Extendoffice
Dim xRg As Range
    On Error Resume Next
    Application.ScreenUpdating = False
    Set xRg = ActiveCell.Offset(1, 0)
    xRg.EntireRow.Select
     Selection.Insert Shift:=xlDown
     Selection.ClearFormats
    Application.ScreenUpdating = True
End Sub

документ вставить строку ниже 1

3. Затем сохраните и закройте это окно кода. Далее, пожалуйста, нажмите Вставить > Формы > Прямоугольные, см. снимок экрана:

документ вставить строку ниже 1

4. Затем нарисуйте прямоугольную кнопку с помощью курсора и отформатируйте ее так, как вам нужно. Смотрите скриншот:

документ вставить строку ниже 1

5. После форматирования в соответствии с вашими потребностями щелкните его правой кнопкой мыши и выберите Назначить макрос вариант, см. снимок экрана:

документ вставить строку ниже 1

6. В Назначить макрос диалоговом окне выберите имя макроса, которое вы только что вставили, из Имя макроса список, см. снимок экрана:

документ вставить строку ниже 1

7, Затем нажмите OK чтобы закрыть диалоговое окно. Теперь, когда вы щелкните любую ячейку, а затем нажмите кнопку, пустая строка будет вставлена ​​над выбранной ячейкой, как показано ниже:

документ вставить строку ниже 1


Дополнительные статьи по относительной вставке строк:

  • Скопируйте и вставьте строку несколько раз или продублируйте строку X раз
  • Пробовали ли вы в своей повседневной работе скопировать строку или каждую строку, а затем несколько раз вставить ее под текущей строкой данных на листе? Например, у меня есть диапазон ячеек, теперь я хочу скопировать каждую строку и вставить их 3 раза в следующую строку, как показано на следующем снимке экрана. Как бы вы справились с этой работой в Excel?
  • Вставлять пустые строки при изменении значения в Excel
  • Предположим, у вас есть диапазон данных, и теперь вы хотите вставить пустые строки между данными при изменении значения, чтобы вы могли разделить последовательные одинаковые значения в одном столбце, как показано на следующих снимках экрана. В этой статье я расскажу о некоторых хитростях, которые помогут вам решить эту проблему.
  • Быстрая вставка нескольких строк или столбцов в Google Таблицы
  • В этой статье я представлю простой способ вставить несколько пустых строк или столбцов в лист Google.
  • Вставить пустую строку над определенным текстом в Excel
  • Когда вы работаете с листом, пробовали ли вы когда-нибудь вставить пустую строку над определенным текстом в столбце? Например, в столбце A есть имена, теперь я хочу вставить пустые строки над ячейками, которые содержат имя «Майк», как показано на скриншоте слева, возможно, у вас нет прямого способа решить эту задачу в Excel. . В этой статье я расскажу о некоторых хороших приемах для решения этой задачи в Excel.

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы и хранение данных; Разделить содержимое ячеек; Объедините повторяющиеся строки и сумму / среднее значение… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Избранные и быстро вставляйте формулы, Диапазоны, диаграммы и изображения; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Группировка сводной таблицы по номер недели, день недели и другое … Показать разблокированные, заблокированные ячейки разными цветами; Выделите ячейки, у которых есть формула / имя

вкладка kte 201905


Вкладка Office — предоставляет интерфейс с вкладками в Office и значительно упрощает вашу работу

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (0)


Оценок пока нет. Оцените первым!

Понравилась статья? Поделить с друзьями:
  • Vba excel вставить строку ниже
  • Vba excel видимые строки
  • Vba excel вставить строку выше другой
  • Vba excel видеокурс скачать торрент
  • Vba excel вставить скопированную ячейку