Печиво допомогти нам доставити наші послуги. Користуючись нашими послугами, Ви погоджуєтесь на використання нами куки.
Порада. Інші мови - перекладена Google. Ви можете відвідати English версія цього посилання.
увійти
x
or
x
x
Реєстрація
x

or

Як дублювати рядки на основі значення комірки у стовпці?

Наприклад, у мене є діапазон даних, що містить список номерів у стовпці D, і тепер я хочу повторити всі рядки кілька разів, виходячи з числових значень у стовпці D, щоб отримати наступний результат. Як я можу копіювати рядки кілька разів на основі значень комірки в Excel?

doc дублювати рядки за коміркою 1

Дубльовані рядки кілька разів на основі значень комірок з кодом VBA


Стрілка синього правого міхура Дубльовані рядки кілька разів на основі значень комірок з кодом VBA

Щоб скопіювати та дублювати всі рядки кілька разів, залежно від значень комірки, вам може допомогти наступний код VBA, будь ласка, виконайте такі дії:

1. Утримуйте клавішу ALT + F11 ключі, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. Клацання вставка > Модулі, і вставте наступний код в Модулі Вікно

Код VBA: дубльовані рядки кілька разів на основі значення комірки:

Sub CopyData()
'Updateby Extendoffice 20160922
    Dim xRow As Long
    Dim VInSertNum As Variant
    xRow = 1
    Application.ScreenUpdating = False
    Do While (Cells(xRow, "A") <> "")
        VInSertNum = Cells(xRow, "D")
        If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
           Range(Cells(xRow, "A"), Cells(xRow, "D")).Copy
           Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "D")).Select
           Selection.Insert Shift:=xlDown
           xRow = xRow + VInSertNum - 1
        End If
        xRow = xRow + 1
    Loop
    Application.ScreenUpdating = False
End Sub

3. Потім натисніть F5 ключ для запуску цього коду, усі рядки повторювалися кілька разів на основі значення комірки у стовпці D, коли вам потрібно.

примітки: У наведеному вище коді літеру A вказує початковий стовпець вашого діапазону даних та літеру D це буква стовпця, яку ви хочете дублювати рядки на основі. Будь-ласка, змініть їх на свій розсуд.



Рекомендовані інструменти для роботи з продуктивністю

Вкладка Office

золота зірка1 Принесіть зручні вкладки для Excel та іншого програмного забезпечення Office, як і Chrome, Firefox та нового Internet Explorer.

Kutools для Excel

золота зірка1 Дивовижний! Збільште свою продуктивність за 5 хв. Не потрібно спеціальних навичок, заощаджуйте дві години щодня!

золота зірка1 Нові можливості 300 для Excel, зробити Excel набагато простішим та потужним:

  • Об'єднати клітинки / рядки / стовпці без втрати даних.
  • Об'єднати та об'єднати декілька аркушів і книг.
  • Порівняйте діапазони, копіюйте декілька діапазонів, перетворюйте текст на дату, одиницю та валюту.
  • Розрахувати за кольорами, Інтерв'ю підказок, Розширений сортування та Супер фільтр
  • Більше Вибрати / Вставити / Видалити / Текст / Формат / Посилання / Коментарі / Робочі книги / Робочі аркуші Інструменти ...

Знімок екрану Kutools для Excel

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.
    KAS · 1 months ago
    Is there a way to update the module to only duplicate new data? I'm working on an ongoing document and do not want the code to duplicate data that has been previously duplicated.
  • To post as a guest, your comment is unpublished.
    Gerardo Enrique Heras Araujo · 2 months ago
    hi, for me is no working, I want to remove letters and number duplicate is possible?
  • To post as a guest, your comment is unpublished.
    Naomi · 2 months ago
    This script seems to be exactly what I need, however, when I run it I am getting an error on the line Selection.Insert Shift:=x1Down

    Any suggestions on how I fix this?
  • To post as a guest, your comment is unpublished.
    Manuel F · 2 months ago
    Thanks! it has been a great solution for all my troubles!
  • To post as a guest, your comment is unpublished.
    Leah · 3 months ago
    Hello, this worked great. However, I have a report with 1000 entries and the code stopped duplicating around entry 480. Is there something that I can add so that it completes the action on the entire report?
    • To post as a guest, your comment is unpublished.
      skyyang · 3 months ago
      Hello, Leah,
      I have tested the code in 2000 rows, and it works well.
      Could you send your worksheet to me for testing the code?
      My email address is skyyang@extendoffice.com
      Look forward to your reply!
      • To post as a guest, your comment is unpublished.
        Leah · 3 months ago
        Hello! I got it to work. It was an error on my side, the report had a few blank rows that were hidden that were causing the script to stop looping. It worked for my report with 8,000 rows! Thank youQ