VBA: копирование диапазона строк данных x раз

#excel

#excel

Вопрос:

Мне нужно скопировать и вставить одну и ту же информацию (по порядку) 1000 раз в один и тот же столбец. Данные будут выполняться с 1990 по 2019 год, разделенные на кварталы…

 1990 FY1990 FQ11990 31-Jan-90 1 
1990 FY1990 FQ21990 31-Jan-90 2
1990 FY1990 FQ31990 31-Jan-90 3
1990 FY1990 FQ41990 31-Jan-90 4

1990 FY1990 FQ11990 31-Jan-90 1 
1990 FY1990 FQ21990 31-Jan-90 2
etc
etc
  

Есть ли код, который я могу написать для автоматизации этого?

Ответ №1:

Я полагаю, что вы ошибаетесь, я считаю, что ожидаемый результат больше похож:

 1990 FY1990 FQ11990 31-Jan-90 1 
1990 FY1990 FQ21990 31-Jan-90 2
1990 FY1990 FQ31990 31-Jan-90 3
1990 FY1990 FQ41990 31-Jan-90 4

1991 FY1991 FQ11991 31-Jan-91 1 
1991 FY1991 FQ21991 31-Jan-91 2
etc
etc
  

Для этого вы должны понимать, что ожидаемый результат выглядит следующим образом:

 aaaa FYaaaa FQbaaaa 31-Jan-aa b
  

где:
aaaa и aa год, либо в четырех цифрах, либо в двух
b это номер квартала

Какова связь между aaaa и aa ? Просто: aa = MOD(aaaa,100) .

Оттуда вы можете начать (понимая, что в Excel конкатенация чрезвычайно проста: "TotalString" = "Total" amp; "String" ), итак, поехали (псевдокод):

 offset_number = 0
for aaaa = 1990 to 2019:
  for b = 1 to 4:
    resulting_string = aaaa amp; " FY" amp; aaaa amp; " FQ" amp; b amp; aaaa amp; " 31-Jan-" amp; MOD(aaaa,100) amp; " " amp; b
    Starting_Cell.Offset(offset_number,0) = resulting_string
    offset_number = offset_number   1
  Next b
Next aaaa