Повторення списку комірок у X більше разів


0

У мене є список імен у excel,

Наприклад

Lizzy
William
Kate
Charles

Я хотів би використовувати якийсь код VBA (або інший метод, щоб повторити це 12 разів).

Я буду робити це знову і знову, і іноді мій список імен може містити менше або більше.

Хтось отримав для мене будь-який напрямок, оскільки я дійсно застряг.

Я б хотів отримати результат у цьому конкретному випадку,

Lizzy
William
Kate
Charles
Lizzy
William
Kate
Charles
Lizzy
William
Kate
Charles
Lizzy
William
Kate
Charles
Lizzy
William
Kate
Charles
Lizzy
William
Kate
Charles
Lizzy
William
Kate
Charles
Lizzy
William
Kate
Charles
Lizzy
William
Kate
Charles
Lizzy
William
Kate
Charles
Lizzy
William
Kate
Charles
Lizzy
William
Kate
Charles

Що я спробував:

Я знайшов метод за допомогою формул, див. Https://www.excel-bytes.com/how-to-repeat-a-range-of-items-multiple-times-in-excel/

Однак проблема в цьому полягає в індексації початкового списку, оскільки мій список зміниться. Посилання на питання затримано: Скопіюйте та вставте список імен у excel 12 разів

Спочатку це запитання було задано іншим користувачем, і він зупинився, тому я не міг відповісти. У мене є рішення, тому я переосмислив питання, і я надам відповідь і позначаю початкового запитувача.


@ Заріна Ахтар, будь ласка, дивіться відповідь
Тоні Чіверс

Відповіді:


1

З даними у стовпці А , у В1 введіть:

=IF(ROW()>COUNTA(A:A)*12,"",INDEX(A:A,MOD(ROW()-1,COUNTA(A:A))+1))

і скопіюйте вниз:

введіть тут опис зображення

Стовпець B автоматично регулюється, якщо стовпець A змінюється.


Працює так само без необхідності коду VBA!
Тоні Чіверс

@TonyChivers Так ... дякую за відгук .............. як ви бачите, легко створити простий послідовний індекс, який повторюється .
Студент Гері

1

Для будь-якого списку імен у першому стовпчику електронної таблиці excel цей код VBA повториться на основі запису в комірці С2, тому, якщо ви хочете, щоб список повторювався 10 разів, а в початковому списку було 10 імен, вставте 110 в оригінальному списку.

    Option Explicit

Sub LRow()

    Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")  '<=== Edit Sheet Name
    Dim LRow As Long

    LRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row

    ws.Range("A1:A" & LRow).Select

End Sub

Це перший, але потрібний вам код, і він по суті виділяє що-небудь у стовпці "А".

Друга частина коду перетягує список, щоб він повторився.

Додайте їх обох і запустіть другий як макрос.

Я сподіваюся, що це допомагає.

    Sub Master()
'
' Master Macro
'

'
    LRow
    Selection.AutoFill Destination:=Range("A1:A" & Range("C2").Value), Type:=xlFillDefault
    Range("A1:A" & Range("C2").Value).Select
    Range("B1").Select
End Sub

1
Як би неглупо це не звучало, я мушу запитати: чи є щось не так із введенням у списку, а потім перетягуванням (позначка повторення правого кута) до 12 разів? Ви можете виявитися коротким або довгим, але код не потрібен, і це швидко.
DroidW

1
Так, я бачу вашу думку, але я думаю, що оригінальний запитуючий прагне мати бездоганний спосіб, який може бути використаний в інших процесах автоматизації. "Я буду робити це знову і знову, і іноді мій список імен може містити менше або більше".
Тоні Чіверс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.