Совет. Другие языки - Google-Translated. Вы можете посетить English версия этой ссылки.
Войти
x
or
x
x
Регистрация
x

or

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

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


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

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

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


Скопируйте и вставьте определенную строку несколько раз с кодом 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 кнопку, и три новые скопированные строки были вставлены ниже выбранной строки, см. скриншот:


Копирование и вставка каждой строки несколько раз с кодом 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. Щелчок Kutools > Вставить > Повторяющиеся строки / столбцы на основе значения ячейки, см. снимок экрана:

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

4, Затем нажмите Ok or применять Кнопка, вы получите следующий результат, как вам нужно:

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


Kutools для Excel - лучший инструмент для повышения производительности в офисе Повысьте производительность на 80%

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

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

  • Включить редактирование и чтение с вкладками в Word, Excel, PowerPoint, Издатель, Доступ, Visio и Проект.
  • Открывайте и создавайте несколько документов в новых вкладках одного и того же окна, а не в новых окнах.
  • Увеличивает вашу производительность на 50% и уменьшает сотни щелчков мышью для вас каждый день!
нижняя часть офиса
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Malik · 23 days ago
    Copy And Insert Each Row Multiple Times With VBA Code

    In VBA code how can I select the starting row
  • To post as a guest, your comment is unpublished.
    Sal · 1 months ago
    hi this worked great, only i need two rows copied N number of times. Can you please adjust the code so when i select two rows, it will then copy those two rows down N times ? thanks for your help
    • To post as a guest, your comment is unpublished.
      skyyang · 1 months ago
      Hello, Sal,
      If you need to only copy two rows down by multiple times, you just need to use the VBA code 1 in this article, apply the code two times will solve your problem. Please try, hope it can help you!
  • To post as a guest, your comment is unpublished.
    Deep Saha · 2 months ago
    how to perform the same action with selected cells using VB,


    I need to repeat a few selected cells (rows and columns) x no of times in the same sheet and in the same order as:

    line1
    line2
    line3

    line1
    line2
    line3
  • To post as a guest, your comment is unpublished.
    Jamar · 4 months ago
    How can I do this for columns?
  • To post as a guest, your comment is unpublished.
    Jamar · 4 months ago
    how do I do this for columns?
  • To post as a guest, your comment is unpublished.
    Andreea · 7 months ago
    Love it! It works every time! Thank you so much for this :)
  • To post as a guest, your comment is unpublished.
    Sashitharan Govindasamy · 10 months ago
    Hello, I need help, this is how my table looks, for example, when I add 2 row at the end of my 1st table, I want the vba help me to do the same thing for the table below (add 2 rows at the end of the table). So my job will be, only need to add rows at the 1st table, the table bellows all will generate rows automatically based on numbers of row in the 1st table. the are the coding I used now to add row for the 1st table. I hope someone can solve this issue for me, thx.Sub InsertNumRows()

    ActiveCell.EntireRow.Copy

    Dim Rng As Long

    Application.DisplayAlerts = False
    On Error Resume Next
    Rng = InputBox("Enter number of rows required.")
    On Error GoTo 0
    Application.DisplayAlerts = True

    If Rng = 0 Then
    MsgBox "You didn't specify a range!"
    Exit Sub

    Else
    Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(Rng, 0)).Select
    Selection.EntireRow.Insert Shift:=xlDown
    End If

    End Sub
  • To post as a guest, your comment is unpublished.
    devin · 10 months ago
    Love the code! how do i set the start range to skip the first row (Column Headers) and start on row 2?
    • To post as a guest, your comment is unpublished.
      skyyang · 10 months ago
      Hi, Devin,
      To skip the first header row, please apply the following VBA code:

      Sub insertrows()
      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

      Please try it, hope it can help you!
  • To post as a guest, your comment is unpublished.
    naz · 11 months ago
    Really thanks for your support !!!!
  • To post as a guest, your comment is unpublished.
    May · 1 years ago
    Hi, how can I change the code to include the following

    1. duplicate based on number of days
    2. change column EOM from end of month to daily date
  • To post as a guest, your comment is unpublished.
    Talen · 1 years ago
    I used this macros in the past and it has always worked until lately. Any insight why it would only duplicate the top row even when using the multiple row macros? I have removed all filters/frozen panes.
  • To post as a guest, your comment is unpublished.
    Adnan · 1 years ago
    I want to duplicate rows based on a parameter. For example, I have a column named meeting duration time. If that column is more than 1, I want to duplicate meeting ID rows based on that number. If meeting duration is 2 hours, then duplicate meetingID two times. If meeting is 3 hours then duplicate three times.
    half an hour increments can be roundup to the hour.

    MeetingID Time of Start Time of End Meeting Duration
    43117 9:00 AM 11:00 AM 02:00
    43580 9:30 AM 11:00 AM 01:30
    42699 10:00 AM 11:30 AM 01:30
    12345 01:00 PM 2:00 PM 01:00
    • To post as a guest, your comment is unpublished.
      Erin · 1 years ago
      I have the same problem. Have you found a solution?
      • To post as a guest, your comment is unpublished.
        skyyang · 1 years ago
        Hi, guys,
        May be the following VBA code can do you a favor, please apply it:
        Sub insertrows()
        Dim I As Long
        Dim xRg As Range
        Dim xHour, xMin As Long
        On Error Resume Next
        Application.ScreenUpdating = False
        For I = Range("D" & Rows.CountLarge).End(xlUp).Row To 1 Step -1
        xHour = 0
        Set xRg = Range("D" & I)
        xHour = Hour(xRg.Value) + 1
        xMin = Minute(xRg.Value)
        If xMin < 30 Then xHour = xHour - 1
        Rows(I).Copy
        Rows(I).Resize(xHour).Insert
        Next
        Application.ScreenUpdating = True
        Application.CutCopyMode = False
        End Sub

        Please try it. Hope it can help you!
  • To post as a guest, your comment is unpublished.
    Rushabh Patel · 1 years ago
    i want to generate duplicate rows randomly,

    for eg. generate random duplicate rows between 20 to 80.


    what will be updated code for the following


    Sub insertrows()
    'Updateby Extendoffice 2016616
    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 1 Step -1
    Rows(I).Copy
    Rows(I).Resize(xCount).Insert
    Next
    Application.CutCopyMode = False
    End Sub
  • To post as a guest, your comment is unpublished.
    mate · 1 years ago
    real nice macro mate!
  • To post as a guest, your comment is unpublished.
    BJ Conley · 1 years ago
    Awesome Macro - Saved me so much time!
  • To post as a guest, your comment is unpublished.
    Zach · 1 years ago
    Thank you!