Эх, нелегкая эта штука VBA когда мало знаешь =((((
Ребят проблема, подскажите пожалуйста с макросом.
Есть Лист1 с данными, нужен макрос который удалит не нужные строчки и пустые. Пример, Лист1 нужно оставить только название улицы, прибор, сер.номер,система (остальное удалить из шапки, что бы не было пустых строчек между ними). Возможно такое? что бы Макрос видел название что ему надо удалить (строчку)
Эх, нелегкая эта штука VBA когда мало знаешь =((((
Ребят проблема, подскажите пожалуйста с макросом.
Есть Лист1 с данными, нужен макрос который удалит не нужные строчки и пустые. Пример, Лист1 нужно оставить только название улицы, прибор, сер.номер,система (остальное удалить из шапки, что бы не было пустых строчек между ними). Возможно такое? что бы Макрос видел название что ему надо удалить (строчку)Dersarius
Dersarius, Добрый день! Сначало ищете последнюю заполненную строку, потом циклом проверяете пустая или нет строчка (если у вас определяется именно первым столбцом пустота строки, тогда будет так): [vba]
Код
sub удаление_строк() i_n = cells(rows.count,1).end(xlUp).row
For i=1 to i_n if cells(i,1)="" then rows(i).delete end if next i
end sub
[/vba]
Dersarius, Добрый день! Сначало ищете последнюю заполненную строку, потом циклом проверяете пустая или нет строчка (если у вас определяется именно первым столбцом пустота строки, тогда будет так): [vba]
Код
sub удаление_строк() i_n = cells(rows.count,1).end(xlUp).row
For i=1 to i_n if cells(i,1)="" then rows(i).delete end if next i
_Boroda_, Вы правы, тут не учитывал, что при удалении i-й строки i+1 строка становится i-й. А я обычно вводил переменную, которую вычитал на каждом шаге: [vba]
Код
sub удаление_строк() dim k as long i_n = cells(rows.count,1).end(xlUp).row
For i=1 to i_n if cells(i-k,1)="" then rows(i-k).delete k=k+1 end if next i
end sub
[/vba]
_Boroda_, Вы правы, тут не учитывал, что при удалении i-й строки i+1 строка становится i-й. А я обычно вводил переменную, которую вычитал на каждом шаге: [vba]
Код
sub удаление_строк() dim k as long i_n = cells(rows.count,1).end(xlUp).row
For i=1 to i_n if cells(i-k,1)="" then rows(i-k).delete k=k+1 end if next i
Да уж сколько раз здесь писали, что проще, но косячнее. На средних объемах еще нормально, а на больших не всегда. Я не утверждаю, что вообще не работает, я утверждаю, что иногда работает неверно.
Да уж сколько раз здесь писали, что проще, но косячнее. На средних объемах еще нормально, а на больших не всегда. Я не утверждаю, что вообще не работает, я утверждаю, что иногда работает неверно._Boroda_