Доброго времени суток, уважаемые форумчане.
Подскажите пожалуйста, как правильно решить следующую задачу (или найти решение похожей).
Дано: на листе 1, в столбце F имеются два значения (задаются пользователем): количество работ (r) и количество участков (n).
Требуется: для каждой работы добавить количество строк равное количеству участков c заполнением: "Участок 1"..."Участкок n".
Новичок в VBA, работал с ним только применительно Аutocad.
Пример прикладываю во вложении.
[вложение удалено администратором]
Не ответ на ваш вопрос, а только рекомендация. Используйте всегда Option Explicit: https://forumvba.ru/index.php?topic=402.0
Макрос
Sub Testik()
Dim uchastki(), lr As Long, i As Long
'1. Отключение монитора для ускорения макроса и чтобы не мерцало.
Application.ScreenUpdating = False
'2. Удаление прежних данных из столбца A. End не ищет в скрытых строках.
lr = Cells(Rows.Count, "A").End(xlUp).Row
If lr >= 5 Then
Range("A5:A" & lr).ClearContents
End If
'3. Создание ячеек в массиве "uchastki". Сначала в него запишутся участки,
' а затем массив будет вставляться на лист заданное кол-во раз.
' Указывается 1 To 1 для создания двумерного массива, чтобы можно было вставить
' на эксель-лист.
ReDim uchastki(1 To Range("F3").Value, 1 To 1)
'4. Запись участков в массив "uchastki"
For i = 1 To UBound(uchastki, 1)
uchastki(i, 1) = "Участок " & i
Next i
'5. Вставка участков на лист.
' Данные вставляются, начиная со строки 5.
lr = 5
For i = 1 To Range("F2").Value
Cells(lr, "a").Resize(UBound(uchastki, 1)).Value = uchastki()
' + 1 - чтобы была пустая строка между группами.
lr = lr + UBound(uchastki) + 1
Next i
'6. Вкл. монитора.
Application.ScreenUpdating = True
End Sub
Администратор, большое Вам спасибо!
Благодарю за комментарии и объяснение, а также за Ваше время!