Страницы: 1
RSS
Удаление пустых строк
 
Доброго Всем дня!!!!  
При работе над дипломом возникла следующая проблема:  
Имеется порядка 1500 исходных экселек с данными...  
Необходимо в каждом файле удалить пустые строки(а точнее строки не совсем пустые, а с заполненными некоторыми столбцами)  
Пробовал записать макрос  
Sub Макрос4()  
'  
' Макрос4 Макрос  
'  
' Сочетание клавиш: Ctrl+ъ  
'  
   Selection.SpecialCells(xlCellTypeBlanks).Select  
   Selection.EntireRow.Delete  
End Sub  
При открытии нового файла макрос не работает...  
Выдает ошибку 1004:Данная команда не применима для перекрывающихся диапазонов  
пример экселевского файла в приложении...  
Я был бы очень признателен, если бы умы форума сего откликнулись и помогли разобраться...
 
Sub DeleteEmptyRows()  
  '---------------------------------------------------------------------------------------  
  ' Procedure    : DeleteEmptyRows  
  ' Author       : The_Prist???  
  ' Topic_HEADER : Удаление всех пустых строк в таблице  
  ' Topic_URL    : http://www.planetaexcel.ru/tip.php?aid=31  
  ' Post_Author  :  
  ' Post_URL     :  
  ' DateTime     : 10.09.2006  
  ' Purpose      : Удаление всех пустых строк в таблице  
  ' Notes        :  
  '---------------------------------------------------------------------------------------  
  If MsgBox("Удалить все пустые строки на листе?", vbOKCancel Or vbQuestion Or vbDefaultButton1, "Удалить пустые строки?") = vbCancel Then Exit Sub  
  Dim lLastRow As Long, i As Long  
  lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count  
  Application.ScreenUpdating = False  
  For i = lLastRow To 1 Step -1  
     If Application.CountA(Rows(i)) = 0 Then Rows(i).Delete  
  Next  
  Application.ScreenUpdating = True  
End Sub  
 
Sub DeleteEmptyRows2()  
  '---------------------------------------------------------------------------------------  
  ' Procedure    : DeleteEmptyRows2  
  ' Author       : слэн  
  ' Topic_HEADER : Почему не работает макрос удаления пустых строк?  
  ' Topic_URL    : http://www.planetaexcel.ru/forum.php?thread_id=9861  
  ' Post_Author  : слэн  
  ' Post_URL     : http://www.planetaexcel.ru/forum.php?thread_id=9861&page_forum=2&allnum_forum=39  
  ' DateTime     : 17.04.2010, 13:47  
  ' Purpose      : Удаление всех пустых строк в таблице  
  ' Notes        :  
  '---------------------------------------------------------------------------------------  
  If MsgBox("Удалить все пустые строки на листе?", vbOKCancel Or vbQuestion Or vbDefaultButton1, "Удалить пустые строки?") = vbCancel Then Exit Sub  
  On Error Resume Next  
  Dim RNG As Range, x, n As Long, nr As Long, d As Long  
  Set RNG = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants, 23)  
  n = RNG.Row + 1  
  For Each x In RNG.Rows  
     nr = x.Row  
     If nr > n Then  
        Range(Cells(n, 1), Cells(nr - 1, 1)).EntireRow.Delete  
        d = nr - n  
     Else  
        d = 0  
     End If  
     n = nr + 1 - d  
  Next  
End Sub
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
1.Тема диплома отношения к Excel не имеет, но связан он с фондовым рынком (формирование портфеля), специальность финансы и кредит  
2. Треугольник... виноват..  
3. Я изучил страницу Приемы.. Этот код мне не подходит, так как он удаляет ПУСТЫЕ строчки, а мне нужно удалять, строчки, в кот некоторые столбцы заполненны..
 
ну так в чём проблема-то?  
Просто замените в макросе The_Prist в цикле    
For i = lLastRow To 1 Step -1  
If Application.CountA(Rows(i)) = 0 Then Rows(i).Delete  
Next  
проверку условия на под свои нужды...
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Если это возможно уберите синий треугольник пожалуйста..  
Файл в приложении..
 
И уж поучитесь формулировать вопросы.  
Все ответы В ТОЧНОСТИ соответствуют вопросу-теме топика: "Удаление пустых строк"  
Что просили, то и получили. Тем более, что пример не приложили...  
Тут народ что, телепатически должен догадываться, по признаку отсутствия каких данных в каких столбцах должны удаляться строки?
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
А приложение у вас на компе что ли?
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Еще одна попытка
 
Дружище!!  
Не кипятись!!)))  
Файл я приложил..  
После выполнения макроса строки 1 343 461 708 736 839 932  у меня должны остаться...
 
Файл примера - это, конечно, здорово, но хотелось бы ещё знать, по отсутствию данных в каких столбцах должны удаляться строки?  
 
Но в общем случае:  
заменяйте в цикле макроса DeleteEmptyRows  
If Application.CountA(Rows(i)) = 0 Then Rows(i).Delete  
на проверку своего условия.  
Ну, например для проверки по столбцам С (столбец № 3)и Е (столбец №5)цикл получается такой:  
For i = lLastRow To 1 Step -1  
If Cells(i,3)="" And Cells(i,5)=""  Then Rows(i).Delete  
Next
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
А например в этом файле, должны остаться эти строчки 1 75 287 354..  
Соответственно, есть таких файлов 1500..  
Ребят, подскажите, можно ли этот процесс как то автоматизировать?  
Заранее благодарен...
 
Ок, спасибо, ща буду разбираться!!!!
 
Дмитрий!  
Я тут в теме Фильтрация спрашивал Юрия_М про разницу между пустой строкой "" и vbNullString, а он что-то не отвечает... Наверное, занят или пропустил вопрос.  
Может вы просветите? Ну, просто любопытственно для образования.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Блин!  
Никак не привыкну к синтаксису управляющих конструкций на этом движке форума и "на автомате" написал ссылку так, как привык писАть везде, в квадратных скобках...  
А исправить нельзя.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Если столбец N "Число сделок" пустой, то удалить строчку нужно..  
И может ли макрос автоматически выполняться при открытии файла..?
 
ну, тогда и пишите:  
If Cells(i,15).Text = "" Then Rows(i).Delete  
а выполнять какие-либо необратимые операции с денными автоматом при открытии как-то стрёмно.  
Уж лучне кнопочку сделать.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
С удалением разобрался, спасибо.  
Подскажите еще пожалуйста, как одним макросом обработать все эксель-книги из конкретного каталога(включая вложенные каталоги)?
 
Ну, это уж совсем оффтоп.    
Лучше уж завести для рассмотрения вопроса обработки нескольких файлов директории отдельную тему, например, с названием что-то типа:  
"Как макросом обработать все Excel-файлы из каталога(включая вложенные каталоги)?"  
А если отвечать в пределах данной темы, то смотрите топик "Создать список файлов в виде гиперсылок на листе" ( http://www.planetaexcel.ru/forum.php?thread_id=17967 ) и делайте сами на основании данных там рекомендаций гуру форума.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
Страницы: 1
Читают тему
Наверх