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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2008, 18:14   #11
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Ничего не понял, получается в коде для окна MsgBox нужно написать что делать с строкой?
Вызов MsgBox сделан для наглядности работы кода и вовсе не обязателен.
Рабочий код , в нашем случае удаление строки, пишется вместо MsgBox.
Код:
Sub DelNulRows3()
    With ThisWorkbook.Worksheets(1)
        For iRow& = 2750 To 1 Step -1
            iCount = Application.Count(Rows(iRow&))
            If iCount = 0 Then .Rows(iRow&).Delete
        Next
    End With
End Sub
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 09.02.2009, 19:03   #12
Franck
 
Регистрация: 09.02.2009
Сообщений: 5
По умолчанию

Прошу прощения за археологию, но такие сложные пути подивили, не проще ли так?
Код:
Sub Удаление_пустых_строк () 
Range("myRange").SpecialCells(xlCellTypeBlanks).EntireRow.Delete 
End Sub
Franck вне форума Ответить с цитированием
Старый 10.02.2009, 06:26   #13
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Franch
А Вы сами-то понимаете, что написали?
Попробую расшифровать: в диапазоне "myRange" находим все пустые ячейки (не строки) и удаляем целиком строки, в которых эти ячейки нашлись. Т.е. если в строке есть хотя бы одна пустая ячейка - удаляем строку. По-моему, это неправильно. Более того, в данном случае возможна ошибка работы с пересекающимися диапазонами.
Для решения подобной задачи, лучше использовать
Код:
Sub DelRows()

    Dim i As Long
    Application.ScreenUpdating = False
    For i = 2750 To 1 Step -1
        If Rows(i).Text = "" Then Rows(i).Delete
    Next

End Sub
Использование Application.ScreenUpdating = False предотвратит мелькание на экране и значительно ускорит выполнение процедуры.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 10.02.2009, 06:39   #14
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Franch
А Вы сами-то понимаете, что написали?
Попробую расшифровать: в диапазоне "myRange" находим все пустые ячейки (не строки) и удаляем целиком строки, в которых эти ячейки нашлись. Т.е. если в строке есть хотя бы одна пустая ячейка - удаляем строку. По-моему, это неправильно.
Позволю себе не согласиться.
Когда диапазон почти полностью заполнен данными (особенно, при работе с диапазоном, состоящим из ячеек одного столбца), гораздо удобнее использовать именно такой способ:

Range("b5:b28").SpecialCells(xlCell TypeBlanks).EntireRow.Delete
EducatedFool вне форума Ответить с цитированием
Старый 10.02.2009, 07:49   #15
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Давайте рассуждать.
Утверждаю, что предлагаемый вариант будет корректно работать только
Цитата:
при работе с диапазоном, состоящим из ячеек одного столбца
если же, например, контролируемый диапазон Range("B5:C28"), и пусть (для наглядности) все ячейки столбца "C" пусты, Ваш метод удалит все строки, независимо от того есть значения в ячейках столбца "B", или нет. Что есть неправильно.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 10.02.2009, 12:16   #16
Franck
 
Регистрация: 09.02.2009
Сообщений: 5
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Franch
А Вы сами-то понимаете, что написали?
Что там понимать-то? Я, по крайней мере, не поленился скачать файл автора темы. Для его задачи макрос более чем достаточен.
ЗЫ, не Франч, а Фрэнк, в нике же написано.
ЗЫ2 Упсс. Почему-то не работает. Непонятно.

Последний раз редактировалось Franck; 10.02.2009 в 12:34.
Franck вне форума Ответить с цитированием
Старый 10.02.2009, 12:30   #17
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Franck
Не кипятитесь. Я тоже не поленился, и внимательно почитал все посты темы. Есть такой вопрос:
Цитата:
А если нужно именно пустые строки удалять, и поиск вести не по ячейке а по всей строке?
P.S. Извините за неправильное обращение по нику.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 10.02.2009 в 12:34. Причина: Добавлено
SAS888 вне форума Ответить с цитированием
Старый 25.01.2011, 22:13   #18
S63AMG
 
Регистрация: 25.01.2011
Сообщений: 4
Восклицание макрос для удаления строк с пустой ячейкой

Здравствуйте!
Пожалуйста помогите сделать макрос для "производственных задач"
Дано: массив - 6 столбцов, около 1000 строк.
Задача макроса: удалять строки, в которых есть только одна пустая ячейка (она всегда находится в 5 столбце).
Если же в строке больше чем 1 пустая ячейка (например 2 рядом) - оставлять строку нетронутой.

Благодарю за помощь.
S63AMG вне форума Ответить с цитированием
Старый 26.01.2011, 06:16   #19
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

См. здесь.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.02.2011, 12:58   #20
komar73
Пользователь
 
Регистрация: 24.01.2009
Сообщений: 66
По умолчанию Удаление строк с отрицательными значениями

Подскажите пожалуйста как мне удалить строки в которых во втором столбце есть отрицательные значения типа -1, -10 итд.
komar73 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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