Как копировать данные с рабочего листа на новый рабочий лист разное количество раз? - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть столбец заголовков на листе (2), столбцы с A по строки 108. В столбцах с B по J содержатся данные, относящиеся к этим заголовкам. Мне нужно скопировать столбец A с столбцом B в лист (3) «X» раз на основе целого числа в ячейке в листе (1) в столбцы B и C листа (3). Это необходимо повторить для каждого столбца B-J, убедившись, что он взял заголовок столбца A и вставил его «X» раз на основе целого числа в ячейке в листе (1) в столбцы B и C листа (3). Мне нужно, чтобы копия и вставка начали повторяться в Листе (3) в строке, следующей за последней вставкой данных.

Дополнительным требованием является то, что каждый раз, когда два столбца данных [имеется в виду столбец A и один из столбцов BJ листа (2)] вставляются в лист (3), неделя года помечается в столбце A Лист (3) для каждой строки данных, вставленных на основе даты начала в листе (1). Неделя года должна продолжать уходить от даты начала на одну неделю с каждой вставкой данных Листа (2) в Лист (3).

Также, если VBA запускается снова, он должен переопределить вставленные данные, а не продолжить вниз по столбцу.

1 Ответ

0 голосов
/ 10 апреля 2019

Мне кажется, я понимаю вашу проблему.Этот код берет количество копий / итераций из ячейки A1 листа Sheet1, затем копирует данные из листа Sheet2 (ячейка B2 до конца набора данных) и вставляет их несколько раз в лист 3:

'assumes parameter is in cell A1
num_iterations = ThisWorkbook.Worksheets("Sheet1").Range("A1")

data_last_row = Worksheets("Sheet2").Cells.Find(What:="*", SearchDirection:=xlPrevious).Row

'Copy records from data tab, assuming data starts in B2
Worksheets("Sheet2").Range("B2:B" & data_last_row).Copy

For i = 1 To num_iterations
    output_last_row = Worksheets("Sheet3").Cells.Find(What:="*", SearchDirection:=xlPrevious).Row
    Worksheets("Sheet3").Cells(output_last_row + 1, 1).PasteSpecial 
Next i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...