У меня в модели Excel 60 блоков вычислений. На основании определенных критериев модель сгенерирует 2 числа. Один определяет количество строк, которые нужно добавить, а другой определяет количество строк, которые нужно удалить.
На основании этих двух чисел я должен ЛИБО добавить ИЛИ удалить строки в каждый из 60 блоков вычислений. Таким образом, для каждого блока будут добавлены или удалены строки, но не то и другое вместе. Я создал имена диапазонов для каждого блока в форме «Проверить» и «а», где «а» идет от 1 до 60. Эти диапазоны содержат либо добавление, либо номер удаления. Мы также создали еще один набор из 60 имен диапазонов с именем «PStart» & 'a', чтобы получить начальную ячейку каждого блока расчета.
Я подготовил код, используя обычный метод копирования данных и вставка необходимого количества строк, но для добавления даже 5 строк в каждый блок требуется более 5 минут.
Есть ли другой способ сделать это, чтобы ускорить процесс? Спасибо за помощь!
Dim Rows, a As Long
Dim rng, prng, sheetnm_rng As String
For a = 1 To 60
rng = "Check" & a
prng = "PStart" & a
sheetnm_rng = Range(rng).Parent.Name
Rows = Range(rng).Value
If Rows > 0 Then
Sheets(sheetnm_rng).Range(prng).End(xlDown).EntireRow.Copy
Sheets(sheetnm_rng).Range(prng).End(xlDown).EntireRow.Offset(1, 0).Resize(Rows).Insert shift:=xlDown
ElseIf Rows < 0 Then
Sheets(sheetnm_rng).Range(prng).End(xlDown).Offset(Rows + 1).Resize(-Rows).EntireRow.Delete
End If
Next a