Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2008, 19:11   #1
alexk
 
Регистрация: 17.06.2008
Сообщений: 6
По умолчанию удаление строк

Задача казалось бы простая - удалить пустые строки в листе.
Но ни один макрос не хочет выполяться - пробовал DEF и PLEX
Макросы разрешены. Видимо дело в настройках самой книги (ячеек), но в чем конкретно не разберусь никак...
Спасибо за помощь.
Вложения
Тип файла: zip а.zip (55.1 Кб, 42 просмотров)
alexk вне форума Ответить с цитированием
Старый 23.06.2008, 22:55   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Задача казалось бы простая - удалить пустые строки в листе.
но так не сработало
Код:
Sub DelNulRows() 'так If IsEmpty = True не сработало
With ThisWorkbook.Worksheets(1)
     For iRow& = 2750 To 1 Step -1
         If IsEmpty(.Cells(iRow&, "A").Value) = True Then .Rows(iRow&).Delete
     Next
End With
End Sub
а так - работает (
Код:
Sub DelNulRows2() 'а так работает :(
With ThisWorkbook.Worksheets(1)
     For iRow& = 2750 To 1 Step -1
         If Cells(iRow&, "A").Value = "" Then .Rows(iRow&).Delete
     Next
End With
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 23.06.2008, 23:37   #3
alexk
 
Регистрация: 17.06.2008
Сообщений: 6
По умолчанию

Да, да
Но я уже сам разобрался.
Оказалось - если данные скопировать в Word, а потом обратно в Excel, то все макросы начинают работать...
Спасибо за помощь....
alexk вне форума Ответить с цитированием
Старый 23.06.2008, 23:54   #4
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Оказалось - если данные скопировать в Word, а потом обратно в Excel, то все макросы начинают работать...
а это уже как-то ....
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 14.08.2008, 16:28   #5
Мучитель excel
Пользователь
 
Регистрация: 13.06.2008
Сообщений: 51
По умолчанию

Полезный макрос, а если значение в одном случае в "А" а через 2-3 пустых в "В" уже тогда как? Удалит же со столбца "В" всю строку.....
Мучитель excel вне форума Ответить с цитированием
Старый 14.08.2008, 20:06   #6
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Но такова была задача
Цитата:
Задача казалось бы простая - удалить пустые строки в листе.
если же немного изменить макрос
Код:
Sub DelNulRows3() 'удаление ячеек со сдвигом вверх
With ThisWorkbook.Worksheets(1)
     For iRow& = 26 To 1 Step -1
         If Cells(iRow&, "A").Value = "" Then .Cells(iRow&, "A").Delete Shift:=xlUp
     Next
End With
End Sub
получим удаление пустых ячеек столбца "А" со сдвигом вверх.
Данные во всех остальных столбцах не удалятся.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 14.08.2008, 20:47   #7
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от alexk Посмотреть сообщение
Задача казалось бы простая - удалить пустые строки в листе..
Нет конкретики в вопросе, а так, достаточно нажать кн. "Сортировка по возрастанию"
valerij вне форума Ответить с цитированием
Старый 15.08.2008, 14:43   #8
Мучитель excel
Пользователь
 
Регистрация: 13.06.2008
Сообщений: 51
По умолчанию

Тоже как вариант неплохо,
А если нужно именно пустые строки удалять, и поиск вести не по ячейке а по всей строке? Если допустим задача стоит *удалить строки в которых нет записей*, если же в строке есть хотябы одно значение, не важно в каком столбце, строка не удаляется. Как в таком случае быть?
Мучитель excel вне форума Ответить с цитированием
Старый 15.08.2008, 15:24   #9
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
задача стоит *удалить строки в которых нет записей*, если же в строке есть хотябы одно значение, не важно в каком столбце, строка не удаляется
тогда так можно:
Код:
Sub test()
    With ThisWorkbook.Worksheets(1)
        For iRow& = 2750 To 1 Step -1
            iCount = Application.Count(Rows(iRow&))
            If iCount = 0 Then
                MsgBox "Строка пустая" 'здесь Ваш код
            Else
                MsgBox "Строка непустая" 'здесь Ваш код
            End If
        Next
    End With
End Sub
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 15.08.2008 в 15:26.
VictorM вне форума Ответить с цитированием
Старый 15.08.2008, 17:12   #10
Мучитель excel
Пользователь
 
Регистрация: 13.06.2008
Сообщений: 51
По умолчанию

Ничего не понял, получается в коде для окна MsgBox нужно написать что делать с строкой?
Мучитель excel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаление дубликатов и группировка строк Serglen Microsoft Office Excel 2 30.07.2008 15:51
Импорт и удаление некоторых строк Alex2008 Microsoft Office Excel 3 06.05.2008 18:26
Макрос: удаление строк если в колонке А число 5 Dorvir Microsoft Office Excel 22 15.02.2008 06:25
Запрет на удаление строк и столбцов Shavminator Microsoft Office Excel 2 12.01.2008 13:36
Удаление строк массива по условию Lexakazanskij Паскаль, Turbo Pascal, PascalABC.NET 9 12.09.2007 20:32