Вставка диапазона со сдвигом ячеек вправо или вниз методом 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 |
В этом случае седьмой столбец окажется на месте третьего столбца.
brunokaz Пользователь Сообщений: 68 |
Господа. Есть таблица. Юзер должен только заполнять данные в таблице и добавлять строки (по необходимости) макросом. Заголовок таблицы и расчет итогов защищен 1) Написал простейший макрос добавления строк Теперь столкнулся с проблемой. Выше этой таблицы есть области где юзер может добавить строки сам, вручную. Если он там добавляет, то у меня смещается диапазон вставки (так как он прописан конкретно в макросе), а также нарушается и итоговое суммирование (начальная ячейка прописана в ДВССЫЛ). Как быть? Эту таблицу можете посмотреть в примере. Буду благодарен за помощь |
Владимир Пользователь Сообщений: 8196 |
Пускай вставляет. Какие проблемы? «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
brunokaz Пользователь Сообщений: 68 |
Владимир,Спасибо за подсказку по сумме. Что будет если сверху добавить сверху таблицы строку? 1) Вставка будет осуществляться в 6 строку, которая уже сместиться на заголовок таблицы Понимаете? |
Владимир Пользователь Сообщений: 8196 |
Тогда нужно через ПОИСКПОЗ привязаться к слову «рыночная». «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
Nordheim Пользователь Сообщений: 3154 |
#5 16.08.2017 11:19:15 Аналог вашего макроса!
Изменено: Nordheim — 16.08.2017 11:21:40 «Все гениальное просто, а все простое гениально!!!» |
||
brunokaz Пользователь Сообщений: 68 |
Владимир,принято. Благодарю. Попробую. Только у меня строк надо ставить 5000 и главное чтобы никто больше не прописал слово рыночная в этом дипазоне Скажите, а по вставке строк макросом нет идей? ) |
Владимир Пользователь Сообщений: 8196 |
#7 16.08.2017 11:31:46
Тут нужны Ваши пояснения, что хотите получить на выходе? Копировать нужно с листа 2 одну строку или то, что заполнено и т.д. в этом духе. «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
||
brunokaz Пользователь Сообщений: 68 |
Nordheim, Изменено: brunokaz — 16.08.2017 11:49:44 |
brunokaz Пользователь Сообщений: 68 |
Владимир, тогда по примеру с адресами пройдусь: 1) Я заполнил таблицу, все данные в ней, и понял, что у меня есть еще 1 объект, данные по которому необходимо внести в эту таблицу. Я нажимаю кнопку — строка добавляется выше сроки заполненной мною ранее (становится первой в этой таблице). При этом, сохраняются форматирования, оформление и выпадающий список новой добавленной строки.я заполняю данные по второму объекту. Как-то так. Эта таблица большого заключения, под которой и над которой будет вестись работа по заполнению данных… Изменено: brunokaz — 16.08.2017 11:51:17 |
Nordheim Пользователь Сообщений: 3154 |
#10 16.08.2017 11:49:45 Файл без данных поэтому не отследил, ничего заполненного не должен удалять.
Subbrunokaz написал: 2) Вставляет по несколько строк всегда вставляет только 1 строку brunokaz написал: 3) в случае добавления строк выше таблицы, начнется чорти чо. Проблема не решается получается Как может макрос вставит строку выше таблицы? Вы планируете смещать таблицу? Изменено: Nordheim — 16.08.2017 11:51:30 «Все гениальное просто, а все простое гениально!!!» |
||
Владимир Пользователь Сообщений: 8196 |
А почему Вы не хотите просто защитить первые три строки от вставки строк, редактирования? «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
brunokaz Пользователь Сообщений: 68 |
#12 16.08.2017 11:54:56 Nordheim, Мы привязаны к строке 6. Если я добавлю строку выше таблицы, это же станет строкой заголовка и начнуться проблемы
Изменено: brunokaz — 16.08.2017 11:55:25 |
||
Nordheim Пользователь Сообщений: 3154 |
#13 16.08.2017 12:02:54 Я не пойму как вы добавите строку выше таблицы, в коде зашита вставка в 6 строку, и дальнейшее форматирование конкретно 6 сроки.
Вроде код примитивный до невозможности и все понятно. «Все гениальное просто, а все простое гениально!!!» |
||
Nordheim Пользователь Сообщений: 3154 |
#14 16.08.2017 12:03:54
Каким образом? «Все гениальное просто, а все простое гениально!!!» |
||
brunokaz Пользователь Сообщений: 68 |
Nordheim, в моем примере выделите строку два и вручную добавьте строку, а потом добавьте строку в таблицу при помощи написанного Вами макроса. Получится так, что строка 6 (Rows(«6:6»).Insert Shift:=xlDown) это уже строка заголовка таблицы ….. Код простой, может я не верно объясняю, за что и извиняюсь, если это так. Изменено: brunokaz — 16.08.2017 12:18:40 |
Nordheim Пользователь Сообщений: 3154 |
#16 16.08.2017 12:27:19
Я и спросил разве таблица будет смещаться?
проделайте манипуляции с вашим макросом результат идентичный будет. «Все гениальное просто, а все простое гениально!!!» |
||||
brunokaz Пользователь Сообщений: 68 |
#17 16.08.2017 12:39:57
Не понял фразу сначала по смещению….
Согласен
Этот лист состоит из десятков таблиц. Таблицы и их форму изменять нельзя — это утвержденная форма заключения, но в некоторых местах строки добавлять можно (например под таблицами), с целью отражения комментариев к изложенным в таблицах данным и изложением доп инфы по данным из таблицы. Изменено: brunokaz — 16.08.2017 12:40:19 |
||||||
Владимир Пользователь Сообщений: 8196 |
Попробуйте добавить строки выше табличной формы.. Изменено: Владимир — 16.08.2017 13:54:52 «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
brunokaz Пользователь Сообщений: 68 |
#19 16.08.2017 15:09:04
Лист защищен…. |
||
brunokaz Пользователь Сообщений: 68 |
Если эту проблему не решить или трудно решаема, прошу подтвердить кто может. Тогда я буду думать что делать… |
Nordheim Пользователь Сообщений: 3154 |
#21 17.08.2017 08:39:47
«Все гениальное просто, а все простое гениально!!!» |
||
brunokaz Пользователь Сообщений: 68 |
Nordheim, к сожалению это не решает вопрос с возможным смещением таблицы. Если только весь лист не защищать по вставке строк, что я не могу сделать Изменено: brunokaz — 17.08.2017 09:16:32 |
Nordheim Пользователь Сообщений: 3154 |
#23 17.08.2017 09:22:28
Почему же?, Строки вставляются благополучно макросом. Пользователь вставить строки не может. как в таком случае сместится таблица? «Все гениальное просто, а все простое гениально!!!» |
||
brunokaz Пользователь Сообщений: 68 |
Nordheim, ладно…придется запрещать пользователям вставлять строки. Спасибо Вам за помощь |
Nordheim Пользователь Сообщений: 3154 |
Попробуйте сделать обходной вариант. Вставление строк в любое место кроме шапки таблицы, с использованием InputBox. «Все гениальное просто, а все простое гениально!!!» |
brunokaz Пользователь Сообщений: 68 |
|
Kcuxa_xa Пользователь Сообщений: 68 |
Подскажите, а что нужно поменять в макросе, что бы он добавлял новую строку не в начало таблицы, а в конец? Изменено: Kcuxa_xa — 07.01.2019 22:26:50 |
Nordheim Пользователь Сообщений: 3154 |
Kcuxa_xa, А в чем смысл? Вам нужно вставить пустую строку перед последней заполненной в таблице? «Все гениальное просто, а все простое гениально!!!» |
Kcuxa_xa Пользователь Сообщений: 68 |
#29 07.01.2019 23:16:38
да Вы правы это в принципе не критично. А не подскажите как в таком случае сделать, что бы новая строка автоматом нумеровалась по порядку? |
||
Nordheim Пользователь Сообщений: 3154 |
#30 07.01.2019 23:29:58 Файл пример покажите.
Изменено: Nordheim — 07.01.2019 23:34:39 «Все гениальное просто, а все простое гениально!!!» |
||
Inserting new rows is the easiest way to add new fields into your worksheet area. Since Excel inserts rows by copying the formatting of the previous row, it is usually more practical than moving bottom cells to open up space for new data. Thanks to VBA, we can insert rows dynamically. In this guide, we’re going to show you how to insert specific number of rows in Excel.
Download Workbook
Preparation
First, you need to open the VBA (Visual Basic for Applications) window and add a module.
- Press Alt + F11 to open the VBA window
- In the VBA window, click Insert on the toolbar
- Click the Module option
Macro logic
The logic behind of inserting rows is controlled by two elements:
- The row above which you want to insert new rows. You can think of this as the anchor row.
- Number of rows.
Once these elements are set, the macro will select the number of rows, starting with the anchor row and run Insert method.
Range(Rows(AnchorRow), Rows(AnchorRow + RowCount — 1)).Insert
You can identify these elements in the code with set values, gather this information dynamically such as from the active cell, or through user input.
AnchorRow = 3 ‘Static
AnchorRow = ActiveCell.Row ‘Selected Cell
AnchorRow = Application.InputBox(Prompt:=»Please select a cell», Type:=8).Row ‘User input
Select the one that best fits your use case. Let’s now see the code block.
How to insert specific number of rows
The following code requires the user select a cell in the anchor row.
Sub InsertRows1()
‘Define variables
Dim AnchorRow As Integer, RowCount As Integer
‘Set variables
AnchorRow = ActiveCell.Row ‘Selected Cell
RowCount = Application.InputBox(Prompt:=»Please enter how many rows you want to insert», Type:=1) ‘User input
‘Insert rows
Range(Rows(AnchorRow), Rows(AnchorRow + RowCount — 1)).Insert
End Sub
The next and final sample code will insert a specific number of rows above the user-prompted cell.
‘This macro will insert static number of rows above the user-prompted cell
Sub InsertRows2()
‘Define variables
Dim AnchorRow As Integer, RowCount As Integer
‘Set variables
AnchorRow = Application.InputBox(Prompt:=»Please select a cell», Type:=8).Row ‘User input
RowCount = 3 ‘Static
‘Insert rows
Range(Rows(AnchorRow), Rows(AnchorRow + RowCount — 1)).Insert
End Sub
Если ваша работа требует, чтобы вы практически жили в таблицах Excel, возможно, вы ищете способы упростить повторяющиеся задачи. Например, всякий раз, когда вы работаете с данными, которые необходимо регулярно обновлять, вам часто нужно добавлять несколько строк.
В этом руководстве мы расскажем, как вставить несколько строк в Excel за несколько простых и быстрых шагов. Выберите тот, который лучше всего подходит для вас.
Как вставить несколько строк, перетащив выделенную границу
Это самый быстрый способ вставить несколько пустых строк в лист Excel. Это просто и не требует использования каких-либо сочетаний клавиш.
- Выберите строку, ниже или выше которой вы хотите ввести пустые строки.
- Наведите указатель мыши на выделенную границу.
- Нажмите Shift, и вы увидите, что указатель изменится на точку со стрелками вверх и вниз. Перетащите выделение вниз на количество строк, которые вы хотите добавить.
Если вам не нравится идея несколько щелчков правой кнопкой мыши пока вы работаете с листом Excel, вы можете использовать два сочетания клавиш.
Сначала выберите количество строк, равное количеству пустых строк, которые вы хотите ввести. Используйте Shift + Пробел, чтобы выбрать все столбцы для выбранных строк, или выберите строки, используя номера строк слева.
Затем используйте любой из двух ярлыков:
- Alt + I и Alt + R: нажмите Alt + I, удерживая клавишу Alt, нажмите R.
- Ctrl + Plus: вам нужно использовать знак плюса на цифровой клавиатуре. Если вы хотите использовать знак плюса на основной клавиатуре, используйте Ctrl + Shift + Plus.
Метод быстрого доступа тоже масштабируемый. Нажатие F4 на листе Excel повторяет предыдущее действие. Вы можете использовать один из приведенных выше ярлыков, чтобы добавить, например, 10 строк, а затем нажать F4 10 раз, чтобы добавить 100 пустых строк.
Как вставить несколько скопированных строк с помощью сочетаний клавиш
Если вы хотите скопировать или вырезать несколько строк вместо добавления пустых строк, используйте сочетание клавиш Alt + I + E.
- Начните с копирования или вырезания строк.
- Выберите строку выше строки, которые вы хотите вставить, нажав номер строки слева.
- Нажмите Alt + I + E и выберите Сдвиг ячеек вниз.
Вы также можете использовать следующие сочетания клавиш вместо Alt + I + E (процесс одинаков, независимо от того, какой ярлык вы используете):
- Ctrl + Shift + =
- Control + Plus (знак плюса должен быть на цифровой клавиатуре)
Как вставить несколько строк с помощью параметра вставки
Чтобы использовать этот метод, все, что вам нужно сделать, это выбрать количество строк, которые вы хотите добавить, щелкнуть правой кнопкой мыши по выделенному фрагменту и выбрать «Вставить».
Если в ваших данных много столбцов, нажмите Shift + Пробел, чтобы выбрать все столбцы для выбранных строк, или выберите строки, используя номера строк в левой части листа.
Когда вы выбираете «Вставить», Excel вставляет строки над первой выбранной вами строкой.
Если вы хотите ввести относительно большее количество пустых строк, вы можете выбрать диапазон, а затем использовать параметр «Вставить». Например, вы хотите ввести 500 строк.
- Выберите диапазон в формате «начальная строка: последняя строка». Предполагая, что вы хотите ввести 500 строк после строки 5, выберите диапазон 5: 504, указав этот диапазон в поле имени ячейки.
- Щелкните правой кнопкой мыши и выберите Вставить.
Как вставить несколько строк с помощью макроса Excel
Если вы работаете с большим набором данных на листе, который предполагается использовать регулярно, вы можете автоматизировать вставку строк с помощью макросов. Вам не нужно быть экспертом, хотя знание основ VBA может дать вам много возможностей при использовании Excel.
Перед тем, как начать процесс, проверьте, есть ли на ленте Excel вверху вкладка с названием «Разработчик». Если это не так, перейдите в «Файлы»> «Параметры»> «Настроить ленту» и установите переключатель рядом с «Разработчик».
- Перейдите на вкладку Разработчик и выберите Visual Basic.
- Найдите меню «Вставка», когда откроется редактор Visual Basic, и выберите «Модуль».
- Введите в редакторе следующий код:
Подложка InsertRowsAtCursor ()
Answer = InputBox («Сколько строк нужно вставить? (Максимум 100 строк)»)
NumLines = Int (Val (ответ))
Если NumLines> 100, то
NumLines = 100
Конец, если
Если NumLines = 0, то
Перейти к концу
Конец, если
Делать
Selection.EntireRow.Insert
Счетчик = Счетчик + 1
Цикл пока счетчик
EndInsertLines:
Конец подписки
- Закройте редактор кода.
- На верхней ленте выберите «Разработчик»> «Макросы» или просто нажмите Alt + F8. Выберите только что созданный макрос и выберите Параметры. Установите сочетание клавиш для макроса, но убедитесь, что это не существующая комбинация клавиш, которую вы часто используете, например Ctrl + C. В этом случае мы использовали Ctrl + Shift + T. Когда вы закончите, нажмите OK, чтобы сохранить изменения и выйти.
- Вернитесь на рабочий лист и выберите ячейку, ниже которой вы хотите ввести строки.
- Используйте ярлык, который вы установили для макроса (в данном случае Ctrl + Shift + T). Вы увидите всплывающее окно на листе с просьбой ввести количество строк, которые вы хотите добавить. Например, предположим, вы хотите ввести пять строк. Введите 5 и нажмите Enter.
- Это добавит 5 строк ниже ячейку, которую вы выбрали.
Каждый раз, когда вы хотите вставить несколько строк в Excel, просто используйте ярлык, введите количество строк, и все готово.
Вставка нескольких строк в Excel
если ты часто использую Excel, стоит узнать, как можно сэкономить время на повторяющихся механических задачах, таких как вставка строк. Поскольку есть несколько способов вставить несколько строк в Excel, все зависит от того, какой метод вам удобнее. Если вы добавили много пустых строк в набор данных, есть несколько способов удалить пустые строки.
На листе Excel вы можете вставить пустую строку между существующими строками с помощью функции Вставить. Но если у вас большой диапазон данных и вам нужно вставить две пустые строки после каждой третьей n-й строки, как вы могли бы завершить эту работу быстро и удобно?
- Вставьте определенное количество пустых строк в диапазон данных через фиксированные интервалы с кодом VBA
- Вставьте определенное количество пустых строк в диапазон данных на основе значений ячеек с кодом VBA
- Вставляйте определенное количество пустых строк в диапазон данных через фиксированные интервалы с помощью удобной функции
- Копируйте и вставляйте строки несколько раз на основе определенных чисел с кодом VBA
- Копируйте и вставляйте строки несколько раз на основе определенных чисел с удивительной функцией
Вставьте определенное количество пустых строк в диапазон данных через фиксированные интервалы с кодом VBA
Следующий код VBA может помочь вам вставить определенное количество строк после каждой n-й строки в существующих данных. Пожалуйста, сделайте следующее:
1. Удерживайте ALT + F11 ключи в Excel, и он открывает Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.
Код VBA: вставка определенного количества строк в данные через фиксированные интервалы
Sub InsertRowsAtIntervals()
'Updateby Extendoffice
Dim Rng As Range
Dim xInterval As Integer
Dim xRows As Integer
Dim xRowsCount As Integer
Dim xNum1 As Integer
Dim xNum2 As Integer
Dim WorkRng As Range
Dim xWs As Worksheet
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
xRowsCount = WorkRng.Rows.Count
xInterval = Application.InputBox("Enter row interval. ", xTitleId, 1, Type:=1)
xRows = Application.InputBox("How many rows to insert at each interval? ", xTitleId, 1, Type:=1)
xNum1 = WorkRng.Row + xInterval
xNum2 = xRows + xInterval
Set xWs = WorkRng.Parent
For i = 1 To Int(xRowsCount / xInterval)
xWs.Range(xWs.Cells(xNum1, WorkRng.Column), xWs.Cells(xNum1 + xRows - 1, WorkRng.Column)).Select
Application.Selection.EntireRow.Insert
xNum1 = xNum1 + xNum2
Next
End Sub
3. После вставки этого кода нажмите F5 нажмите клавишу для запуска этого кода, появится всплывающее окно, напоминающее вам о выборе диапазона данных, в который вы хотите вставить пустые строки, см. снимок экрана:
4. Нажмите OK , появится другое окно подсказки, введите количество интервалов между строками, см. снимок экрана:
5. Продолжайте нажимать OK В следующем всплывающем окне подсказки введите количество пустых строк, которые вы хотите вставить, см. снимок экрана:
6. Затем нажмите OK, а пустые строки вставлялись в существующие данные через равные промежутки времени, см. снимки экрана:
Вставьте определенное количество пустых строк в диапазон данных на основе значений ячеек с кодом VBA
Иногда вам может потребоваться вставить пустые строки на основе списка значений ячеек, в этом случае приведенный ниже код VBA может оказать вам услугу, пожалуйста, сделайте следующее:
1. Удерживайте ALT + F11 ключи в Excel, и он открывает Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.
Код VBA: вставьте определенное количество пустых строк на основе списка чисел:
Sub Insertblankrowsbynumbers ()
'UpdatebyExtendoffice
Dim xRg As Range
Dim xAddress As String
Dim I, xNum, xLastRow, xFstRow, xCol, xCount As Long
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select the spefic number column to use(single column):", "Kutools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
xLastRow = xRg(1).End(xlDown).Row
xFstRow = xRg.Row
xCol = xRg.Column
xCount = xRg.Count
Set xRg = xRg(1)
For I = xLastRow To xFstRow Step -1
xNum = Cells(I, xCol)
If IsNumeric(xNum) And xNum > 0 Then
Rows(I + 1).Resize(xNum).Insert
xCount = xCount + xNum
End If
Next
xRg.Resize(xCount, 1).Select
Application.ScreenUpdating = True
End Sub
3. После вставки этого кода нажмите F5 Чтобы запустить этот код, в появившемся диалоговом окне выберите список чисел, на основе которых вы хотите вставить пустые строки, см. снимок экрана:
4, Затем нажмите OK, и вы получите необходимые результаты, как показано на следующих снимках экрана:
Вставляйте определенное количество пустых строк в диапазон данных через фиксированные интервалы с помощью удобной функции
Если вы не знакомы с приведенным выше кодом VBA, Kutools for Excel также может помочь вам, это Вставить пустые строки и столбцы Функция может быстро и легко вставлять определенное количество строк или столбцов в существующие данные с фиксированными интервалами.
Примечание:Чтобы применить это Вставить пустые строки и столбцы , во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.
После установки Kutools for Excel, пожалуйста, сделайте следующее:
1. Выберите диапазон данных, в который вы хотите вставлять пустые строки через определенные промежутки времени.
2. Нажмите Кутулс > Вставить > Вставить пустые строки и столбцы, см. снимок экрана:
3. В Вставить пустую строку и столбцы диалоговое окно, выберите Пустые строки вариант из Тип вставки, а затем укажите количество интервалов и пустых строк, которые вы хотите использовать, как показано на следующем снимке экрана:
4. Затем нажмите OK кнопку, и пустые строки были вставлены в выбранный диапазон с определенным интервалом, как показано на следующем снимке экрана:
Скачать и бесплатную пробную версию Kutools for Excel Сейчас !
Копируйте и вставляйте строки несколько раз на основе определенных чисел с кодом VBA
Предположим, у вас есть диапазон тада, и теперь вы хотите скопировать каждую строку и вставить их несколько раз в следующую строку на основе списка чисел, как показано на скриншотах ниже. Как решить эту задачу на листе Excel?
Чтобы справиться с этой задачей, я представлю вам полезный код, выполните следующие действия:
1. Удерживайте ALT + F11 ключи в Excel, и он открывает Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.
Код VBA: копируйте и вставляйте строки несколько раз в зависимости от конкретных чисел:
Sub CopyRows()
'UpdatebyExtendoffice
Dim xRg As Range
Dim xCRg As Range
Dim xFNum As Integer
Dim xRN As Integer
On Error Resume Next
SelectRange:
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select the list of numbers to copy the rows based on: ", "Kutools for Excel", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub
If xRg.Columns.Count > 1 Then
MsgBox "Please select single column!"
GoTo SelectRange
End If
Application.ScreenUpdating = False
For xFNum = xRg.Count To 1 Step -1
Set xCRg = xRg.Item(xFNum)
xRN = CInt(xCRg.Value)
With Rows(xCRg.Row)
.Copy
.Resize(xRN).Insert
End With
Next
Application.ScreenUpdating = True
End Sub
3. После вставки этого кода нажмите F5 Чтобы запустить этот код, в появившемся диалоговом окне выберите список чисел, которые вы хотите скопировать, и вставьте строки данных на основе, см. снимок экрана:
4, Затем нажмите OK кнопку, и определенное количество строк было скопировано и вставлено под каждой исходной строкой, см. снимки экрана:
Копируйте и вставляйте строки несколько раз на основе определенных чисел с удивительной функцией
Если у вас есть Kutools for Excel, С его Повторяющиеся строки / столбцы на основе значения ячейки функция, вы можете быстро и легко вставлять строки или столбцы на основе списка чисел.
Примечание:Чтобы применить это Повторяющиеся строки / столбцы на основе значения ячейки, во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.
После установки Kutools for Excel, пожалуйста, сделайте следующее:
1. Нажмите Кутулс > Вставить > Повторяющиеся строки / столбцы на основе значения ячейки, см. снимок экрана:
2. В Копировать и вставлять строки и столбцы диалоговое окно, выберите Копировать и вставлять строки вариант в Тип раздел, затем выберите диапазон данных, который вы хотите продублировать, а затем укажите список значений, на основе которых вы хотите копировать строки, см. снимок экрана:
4, Затем нажмите Ok or Применить кнопку, вы получите такой результат, как вам нужно:
Скачать и бесплатную пробную версию Kutools for Excel Сейчас !
Больше относительных статей:
- Скопируйте и вставьте строку несколько раз или продублируйте строку X раз
- Пробовали ли вы в своей повседневной работе скопировать строку или каждую строку, а затем несколько раз вставить ее под текущей строкой данных на листе? Например, у меня есть диапазон ячеек, теперь я хочу скопировать каждую строку и вставить их 3 раза в следующую строку, как показано на следующем снимке экрана. Как бы вы справились с этой работой в Excel?
- Вставлять пустые строки при изменении значения в Excel
- Предположим, у вас есть диапазон данных, и теперь вы хотите вставить пустые строки между данными при изменении значения, чтобы вы могли разделить последовательные одинаковые значения в одном столбце, как показано на следующих снимках экрана. В этой статье я расскажу о некоторых хитростях, которые помогут вам решить эту проблему.
- Вставить пустую строку после определенного текста в Excel
- Если вы хотите вставить пустые строки после определенного текста, как показано на следующем снимке экрана, как с этим быстро и легко справиться, не вставляя их вручную по одной?
- Копирование строк из нескольких листов на основе критериев на новый лист
- Предположим, у вас есть книга с тремя листами, которые имеют такое же форматирование, как показано на скриншоте ниже. Теперь вы хотите скопировать все строки из этих листов, столбец C которых содержит текст «Завершено», в новый лист. Как можно быстро и легко решить эту проблему, не копируя и не вставляя их вручную?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!