Страницы: 1
RSS
Вставка пустых строк по определенному условию
 
Добрый день, товарищи!  
Суть проблемы проста, есть таблица из N-го количества строк, и столбцов. Необходимо по условию, прописанному в столбце E добавить, при условии его удовлетворения, 3 пустых строки. Допустим, в столбце E содержится условие "Выключатели автоматические", значит под этой строкой должно появиться три пустых строки. Набор условий определен и ограничен.  
Пример в прикрепленном файле.  
Понимаю что тема ни раз поднималась на форуме, однако в таком контексте ее еще не было.  
Всем спасибо!
 
Sub ins_row()  
Dim i As Long, sVal As String  
sVal = "Выключатели автоматические,Шестеренные" 'здесь указать список  
For i = Cells(Rows.Count, 5).End(xlUp).Row To 2 Step -1  
   If InStr(sVal, Cells(i, 5)) > 0 Then Cells(i + 1, 5).Resize(3).EntireRow.Insert  
Next  
End Sub
 
Отлично!  
Спасибо большое!
 
Используя показанный скрипт в файле, содержащем более 50тыс. строк и 40 столбцов, при условии проверки более 10 значений sVal, экскль очень медленно работает, добавляет по 1 строке в секунду....  
 
Как то можно увеличить производительность операций вычисления макроса?
 
А так  
Sub ins_row()  
Dim i As Long, sVal As String, arr()  
Application.ScreenUpdating = 0 'откл обновление экрана  
Application.Calculation = xlCalculationManual 'откл пересчет  
sVal = "Выключатели автоматические,Шестеренные" 'здесь указать список  
arr = ActiveSheet.UsedRange.Value  
For i = UBound(arr) To 2 Step -1  
If InStr(sVal, arr(i, 5)) > 0 Then Cells(i + 1, 5).Resize(3).EntireRow.Insert  
Next  
Application.ScreenUpdating = 1 'вкл обновление экрана  
Application.Calculation = xlCalculationAutomatic 'вкл пересчет  
End Sub
 
Так лучше!  
Спасибо!
Страницы: 1
Читают тему
Наверх