Note: The other languages of the website are Google-translated. Back to English

Как скопировать и вставить строку несколько раз или продублировать строку x раз в Excel?

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


Скопируйте и вставьте определенную строку несколько раз с кодом VBA

Если вы хотите дублировать только одну конкретную строку x раз, следующий код VBA может вам помочь, сделайте следующее:

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

2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.

Код VBA: несколько раз продублируйте одну конкретную строку:

Sub test()
'Updateby Extendoffice
    Dim xCount As Integer
LableNumber:
    xCount = Application.InputBox("Number of Rows", "Kutools for Excel", , , , , , 1)
    If xCount < 1 Then
        MsgBox "the entered number of rows is error, please enter again", vbInformation, "Kutools for Excel"
        GoTo LableNumber
    End If
    ActiveCell.EntireRow.Copy
    Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(xCount, 0)).EntireRow.Insert Shift:=xlDown
    Application.CutCopyMode = False
End Sub

3. После вставки кода нажмите F5 нажмите клавишу для запуска этого кода, и появится диалоговое окно с напоминанием о необходимости ввести количество раз, которое вы хотите продублировать, см. снимок экрана:

4. Затем нажмите OK кнопку, и три новые скопированные строки были вставлены под выбранной строкой, см. снимок экрана:


Легко копируйте и вставляйте каждую строку несколько раз на основе определенного числа

Обычно нет хорошего метода для многократного копирования и вставки строк, за исключением ручного копирования и вставки. Но с Kutools for Excel's Повторяющиеся строки / столбцы на основе значения ячейки функция, вы можете легко решить эту проблему. Нажмите, чтобы загрузить Kutools for Excel!

Kutools for Excel: с более чем 300 удобными надстройками Excel, которые можно попробовать бесплатно без ограничений в течение 60 дней. Загрузите и бесплатную пробную версию прямо сейчас!


Скопируйте и вставьте каждую строку несколько раз с кодом VBA

Чтобы дублировать каждую строку несколько раз в диапазоне, вы можете применить следующий код VBA, сделайте следующее:

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

2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.

Код VBA: продублируйте каждую строку несколько раз:

Sub insertrows()
'Updateby Extendoffice
Dim I As Long
Dim xCount As Integer
LableNumber:
xCount = Application.InputBox("Number of Rows", "Kutools for Excel", , , , , , 1)
If xCount < 1 Then
MsgBox "the entered number of rows is error ,please enter again", vbInformation, "Kutools for Excel"
GoTo LableNumber
End If
For I = Range("A" & Rows.CountLarge).End(xlUp).Row To 2 Step -1
Rows(I).Copy
Rows(I).Resize(xCount).Insert
Next
Application.CutCopyMode = False
End Sub

3, Затем нажмите F5 нажмите клавишу для запуска этого кода, и появится окно подсказки, напоминающее вам ввести количество раз, которое вы хотите продублировать для каждой записи, см. снимок экрана:

4. Затем нажмите OK, и каждая строка была скопирована и вставлена ​​в 3 раза ниже активных, см. снимок экрана:

Внимание: В приведенном выше коде A указывает, что диапазон данных начинается в столбце A, если ваши данные начинаются в столбце K, пожалуйста измените A в K как вам нужно.


Скопируйте и вставьте каждую строку несколько раз на основе определенного числа с потрясающей функцией

Возможно, вы не знакомы с кодом VBA или беспокоитесь о том, что код приведет к сбою ваших данных. Здесь я расскажу о полезной функции, Kutools for Excel's Повторяющиеся строки / столбцы на основе значения ячейки, с помощью этой утилиты вы можете быстро копировать и вставлять строки в зависимости от указанного вами числа.

Советы:Чтобы применить это Повторяющиеся строки / столбцы на основе значения ячейки функция, во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.

После установки Kutools for Excel, пожалуйста, сделайте так:

1. Введите повторяющиеся числа, которые вы хотите дублировать строки в списке ячеек рядом с вашими данными, см. Снимок экрана:

2. Нажмите Кутулс > Вставить > Повторяющиеся строки / столбцы на основе значения ячейки, см. снимок экрана:

3. В Копировать и вставлять строки и столбцы диалоговое окно, выберите Копировать и вставлять строки вариант в Тип раздел, затем выберите диапазон данных, который вы хотите дублировать, а затем укажите время повтора для дублирования строк, см. снимок экрана:

4, Затем нажмите Ok or Применить кнопку, вы получите такой результат, как вам нужно:

Нажмите, чтобы загрузить Kutools for Excel и бесплатную пробную версию сейчас!


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

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

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

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (32)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Потрясающий макрос - сэкономил мне столько времени!
Этот комментарий был сведен к минимуму модератором на сайте
действительно хороший макрос, приятель!
Этот комментарий был сведен к минимуму модератором на сайте
я хочу генерировать повторяющиеся строки случайным образом,

для например. генерировать случайные повторяющиеся строки от 20 до 80.


какой будет обновленный код для следующего


Подстроки вставки ()
'Обновить Extendoffice 2016616
Дим я пока
Dim xCount как целое число
Номер этикетки:
xCount = Application.InputBox («Количество строк», «Kutools для Excel», , , , , , 1)
Если xCount < 1 Тогда
MsgBox «введенное количество строк является ошибкой, введите еще раз», vbInformation, «Kutools for Excel»
Перейти к номеру метки
End If
Для I = Range("A" & Rows.CountLarge).End(xlUp).Row To 1 Шаг -1
Строки(I).Копировать
Строки(I).Изменить размер(xCount).Вставить
Далее
Application.CutCopyMode = False
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Я хочу дублировать строки на основе параметра. Например, у меня есть столбец с названием «Продолжительность встречи». Если этот столбец больше 1, я хочу дублировать строки идентификатора собрания на основе этого числа. Если продолжительность встречи составляет 2 часа, дважды продублируйте идентификатор встречи. Если встреча длится 3 часа, то продублируйте три раза.
получасовые приращения могут быть округлены до часа.

ID встречи Время начала Время окончания Продолжительность встречи
43117 9:00 11:00 02:00
43580 9:30 11:00 01:30
42699 10:00 11:30 01:30
12345 01:00 2:00 01:00
Этот комментарий был сведен к минимуму модератором на сайте
У меня точно такая же проблема. Вы нашли решение?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, ребята,
Может быть, следующий код VBA может оказать вам услугу, пожалуйста, примените его:
Подстроки вставки ()
Дим я пока
Dim xRg как диапазон
Dim xHour, xMin As Long
On Error Resume Next
Приложение.ScreenUpdating = False
Для I = Range("D" & Rows.CountLarge).End(xlUp).Row To 1 Шаг -1
хчас = 0
Установите xRg = диапазон («D» и I)
xЧас = Час(xRg.Значение) + 1
xMin = Минута (xRg.Значение)
Если xMin < 30, тогда xHour = xHour - 1
Строки(I).Копировать
Строки(I).Изменить размер(xHour).Вставить
Далее
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub

Пожалуйста, попробуйте. Надеюсь, это поможет вам!
Этот комментарий был сведен к минимуму модератором на сайте
Я использовал этот макрос в прошлом, и он всегда работал до недавнего времени. Любое понимание, почему он будет дублировать только верхнюю строку даже при использовании макросов с несколькими строками? Я удалил все фильтры/замороженные панели.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, как я могу изменить код, чтобы включить следующее

1. дублировать по количеству дней
2. изменить столбец EOM с конца месяца на дневную дату
Этот комментарий был сведен к минимуму модератором на сайте
Действительно спасибо за вашу поддержку !!!!
Этот комментарий был сведен к минимуму модератором на сайте
Код нравится! как установить начальный диапазон, чтобы пропустить первую строку (заголовки столбцов) и начать со строки 2?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Девин,
Чтобы пропустить первую строку заголовка, примените следующий код VBA:

Подстроки вставки ()
Дим я пока
Dim xCount как целое число
Номер этикетки:
xCount = Application.InputBox («Количество строк», «Kutools для Excel», , , , , , 1)
Если xCount < 1 Тогда
MsgBox «введенное количество строк является ошибкой, введите еще раз», vbInformation, «Kutools for Excel»
Перейти к номеру метки
End If
Для I = Range("A" & Rows.CountLarge).End(xlUp).Row To 2 Шаг -1
Строки(I).Копировать
Строки(I).Изменить размер(xCount).Вставить
Далее
Application.CutCopyMode = False
End Sub

Пожалуйста, попробуйте, надеюсь, это поможет вам!
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, мне нужна помощь, вот как выглядит моя таблица, например, когда я добавляю 2 строки в конце моей 1-й таблицы, я хочу, чтобы VBA помог мне сделать то же самое для таблицы ниже (добавить 2 строки в конец таблицы). Таким образом, моя работа будет состоять в том, чтобы добавить строки в 1-ю таблицу, нижеследующая таблица будет автоматически генерировать строки на основе номеров строк в 1-й таблице. это кодировка, которую я использовал сейчас, чтобы добавить строку для 1-й таблицы. Я надеюсь, что кто-то может решить эту проблему для меня, thx.Sub InsertNumRows()

ActiveCell.EntireRow.Copy

Dim Rng As Long

Приложение.DisplayAlerts = False
On Error Resume Next
Rng = InputBox("Введите требуемое количество строк")
По ошибке GoTo 0
Application.DisplayAlerts = True

Если Rнг = 0 Тогда
MsgBox "Вы не указали диапазон!"
Exit Sub

Еще
Диапазон(ActiveCell.Offset(1, 0), ActiveCell.Offset(Rng, 0)).Выбрать
Selection.EntireRow.Insert Shift:=xlDown
End If

End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Любить это! Это работает каждый раз! Спасибо вам большое за это :)
Этот комментарий был сведен к минимуму модератором на сайте
как мне сделать это для столбцов?
Этот комментарий был сведен к минимуму модератором на сайте
Как я могу сделать это для столбцов?
Этот комментарий был сведен к минимуму модератором на сайте
как выполнить то же действие с выделенными ячейками с помощью VB,


Мне нужно повторить несколько выбранных ячеек (строк и столбцов) x количество раз на одном листе и в том же порядке, что и:

line1
line2
line3

line1
line2
line3
Этот комментарий был сведен к минимуму модератором на сайте
привет, это отлично сработало, только мне нужно две строки скопировать N раз. Не могли бы вы изменить код, чтобы при выборе двух строк он копировал эти две строки вниз N раз? Спасибо за вашу помощь
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, Сал,
Если вам нужно несколько раз скопировать только две строки вниз, вам просто нужно использовать код VBA 1 в этой статье, применение кода два раза решит вашу проблему. Пожалуйста, попробуйте, надеюсь, это поможет вам!
Этот комментарий был сведен к минимуму модератором на сайте
Скопируйте и вставьте каждую строку несколько раз с кодом VBA

В коде VBA, как я могу выбрать начальную строку
Этот комментарий был сведен к минимуму модератором на сайте
Нет функции с Windows 2019, если вы используете функцию просто, не имеете абсолютного значения
Этот комментарий был сведен к минимуму модератором на сайте
привет всем .. Заранее спасибо за помощь!!

Код VBA для многократного дублирования одной конкретной строки работает отлично, пока вы не используете фильтр. Интересно, может ли кто-нибудь помочь мне решить эту проблему. Мне нужен код, который работает, даже если вы отфильтровали некоторые значения. Я использую большой объем данных, отсортированных по местоположению. Код частично работает, он вставляет желаемое количество строк, но не имеет данных или формата, когда я применил фильтр.
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, можно ли использовать разные размеры (значения) для каждой строки? Я пытаюсь использовать вектор, но он не работает.
Например :
Строки(I).Изменить размер(xCount(y)).Вставить

Где значения, сохраненные в xCount(y), считываются из таблицы.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Гасс,
Может быть, статья ниже может помочь вам, пожалуйста, проверьте ее:
https://www.extendoffice.com/documents/excel/4054-excel-duplicate-rows-based-on-cell-value.html
Этот комментарий был сведен к минимуму модератором на сайте
Для второго кода VBA (код VBA: дублировать каждую строку несколько раз) я продолжаю получать ошибку времени выполнения: 1004
Здесь еще нет комментариев
Загрузить ещё
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL