Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Удаление строки по цвету или если высота строки равна 0 - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление строки по цвету или если высота строки равна 0 (Формулы/Formulas)
Удаление строки по цвету или если высота строки равна 0
ArtyLight Дата: Среда, 01.03.2017, 22:07 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый вечер!
Ищу макрос для удаления строк в которых присутствуют ячейки желтого цвета.
Заранее благодарен!
 
Ответить
СообщениеДобрый вечер!
Ищу макрос для удаления строк в которых присутствуют ячейки желтого цвета.
Заранее благодарен!

Автор - ArtyLight
Дата добавления - 01.03.2017 в 22:07
AlexM Дата: Среда, 01.03.2017, 22:18 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4507
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
[offtop]Скажите пожалуйста, для чего в разделе по формулам (макросы в разделе Вопросы по VBA) информация, что вы ищите макрос???[/offtop]
[moder]Действительно! Перенесла тему[/moder]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал Pelena - Среда, 01.03.2017, 22:58
 
Ответить
Сообщение[offtop]Скажите пожалуйста, для чего в разделе по формулам (макросы в разделе Вопросы по VBA) информация, что вы ищите макрос???[/offtop]
[moder]Действительно! Перенесла тему[/moder]

Автор - AlexM
Дата добавления - 01.03.2017 в 22:18
K-SerJC Дата: Четверг, 02.03.2017, 08:24 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
[vba]
Код
Sub YellowDead()
On Error GoTo ОШ
Application.ScreenUpdating = False
Dim LC, LR, F, K, str, strcl, koef
Set strcl = New Collection
LR = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
LC = ActiveSheet.UsedRange.Column + ActiveSheet.UsedRange.Columns.Count - 1
For K = 1 To LR
For F = 1 To LC
If ActiveSheet.Cells(K - koef, F).Interior.Color = 65535 Then: ActiveSheet.Rows(K - koef).Delete: koef = koef + 1: strcl.Add K: Exit For
Next F
Next K
If strcl.Count > 0 Then
For F = 1 To strcl.Count
str = str & ": " & strcl(F)
Next F
str = "Удалены строки: - " & Chr$(13) & str
MsgBox str, vbOKOnly, "Выполнено!"
Else
str = "строки с ячейками желтого цвета(65536) ненайдены!"
MsgBox str, vbOKOnly, "Выполнено!"
End If
ОШ:
Application.ScreenUpdating = True
End Sub
[/vba]
так удаляем если есть желтые(оттенок 65535)
отчет показывает какие номера строк удалены
а если условие заменить:
[vba]
Код
If ActiveSheet.Cells(K - koef, F).Interior.Color = 65535 Or ActiveSheet.Rows.RowHeight = 0 Then: ActiveSheet.Rows(K - koef).Delete: koef = koef + 1: strcl.Add K: Exit For
[/vba]
то с нулевой высотой строки тоже удаляет
К сообщению приложен файл: ArtyLight.xlsm (18.3 Kb)


Благими намерениями выстелена дорога в АД.

Сообщение отредактировал K-SerJC - Четверг, 02.03.2017, 09:21
 
Ответить
Сообщение[vba]
Код
Sub YellowDead()
On Error GoTo ОШ
Application.ScreenUpdating = False
Dim LC, LR, F, K, str, strcl, koef
Set strcl = New Collection
LR = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
LC = ActiveSheet.UsedRange.Column + ActiveSheet.UsedRange.Columns.Count - 1
For K = 1 To LR
For F = 1 To LC
If ActiveSheet.Cells(K - koef, F).Interior.Color = 65535 Then: ActiveSheet.Rows(K - koef).Delete: koef = koef + 1: strcl.Add K: Exit For
Next F
Next K
If strcl.Count > 0 Then
For F = 1 To strcl.Count
str = str & ": " & strcl(F)
Next F
str = "Удалены строки: - " & Chr$(13) & str
MsgBox str, vbOKOnly, "Выполнено!"
Else
str = "строки с ячейками желтого цвета(65536) ненайдены!"
MsgBox str, vbOKOnly, "Выполнено!"
End If
ОШ:
Application.ScreenUpdating = True
End Sub
[/vba]
так удаляем если есть желтые(оттенок 65535)
отчет показывает какие номера строк удалены
а если условие заменить:
[vba]
Код
If ActiveSheet.Cells(K - koef, F).Interior.Color = 65535 Or ActiveSheet.Rows.RowHeight = 0 Then: ActiveSheet.Rows(K - koef).Delete: koef = koef + 1: strcl.Add K: Exit For
[/vba]
то с нулевой высотой строки тоже удаляет

Автор - K-SerJC
Дата добавления - 02.03.2017 в 08:24
Gustav Дата: Четверг, 02.03.2017, 09:19 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация: 1138 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
По строчкам-то, наверное, лучше снизу вверх бежать, нет? Т.е. от LR к 1 step -1


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеПо строчкам-то, наверное, лучше снизу вверх бежать, нет? Т.е. от LR к 1 step -1

Автор - Gustav
Дата добавления - 02.03.2017 в 09:19
K-SerJC Дата: Четверг, 02.03.2017, 09:23 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
По строчкам-то, наверное, лучше снизу вверх бежать

как вариант конечно, просто добавил коэфф., при удалении строки


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщение
По строчкам-то, наверное, лучше снизу вверх бежать

как вариант конечно, просто добавил коэфф., при удалении строки

Автор - K-SerJC
Дата добавления - 02.03.2017 в 09:23
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление строки по цвету или если высота строки равна 0 (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!