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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2012, 16:12   #11
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

В продолжение темы. Возникла необходимость удалить с листа все закрашенные каким-либо цветом строки, оставив только девственно белые строки. Применяю код, который успешно сработал с "темно-зеленым" индексом 14, а теперь отказывается работать с индексом белого цвета 2:
Код:
If sh.Cells(i, 1).Interior.ColorIndex <> 2 Then Cells(i, 1).EntireRow.Delete (xlShiftUp)
Из предыдущих сообщений понял, что дальтонизмом не страдаю и что индекс белого - это 2. А макрос не срабатывает. Что я тут накосячил?
strannick вне форума Ответить с цитированием
Старый 26.11.2012, 17:25   #12
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от strannick Посмотреть сообщение
Код:
If sh.Cells(i, 1).Interior.ColorIndex <> 2 Then Cells(i, 1).EntireRow.Delete (xlShiftUp)
наверное вот так:

Код:
If sh.Cells(i, 1).Interior.ColorIndex <> xlNone Then Cells(i, 1).EntireRow.Delete (xlShiftUp)
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 26.11.2012, 19:10   #13
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Не, так тоже не пролазит. Удаляются все строки, и залитые и не залитые. XlNone я пробовал. Такой критерий белого цвета при автофильтре. Еще пытался RGB(255, 255, 255). Не то. Пояснит может кто-нибудь, почему такая несправедливость к белому?
strannick вне форума Ответить с цитированием
Старый 27.11.2012, 02:07   #14
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Да, хочу уточнить, что заливка строк происходит условным форматированием. Если это важно. Юрий М. на планете упоминал, что заливку условным форматированием отследить сложнее, чем простую заливку. Может поэтому код не срабатывает? Но ведь на скрытие строк тот же "темно-зеленый" отследился. И красный тоже.
strannick вне форума Ответить с цитированием
Старый 27.11.2012, 11:07   #15
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Если это важно
Да, это важно.
Может поэтому код не срабатывает.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 27.11.2012, 12:17   #16
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

И что делать? Как тогда отфильтровать все строки, оставив залитые каким-либо цветом, а не залитые скрыть?
strannick вне форума Ответить с цитированием
Старый 27.11.2012, 18:05   #17
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от strannick Посмотреть сообщение
И что делать? Как тогда отфильтровать все строки, оставив залитые каким-либо цветом, а не залитые скрыть?
Чет я так и не наше как получить цвет условного форматирования... все что нашел, это определить диапазон условного форматирования, а дальше по условию например больше нуля
код:

Код:
Sub test_1()
Dim iCell As Range, iDiapazon As Range, rCell As Range
Set iCell = Range("F9") 'ячейка, которая служит образцом
Set iDiapazon = Range("A1:F20") 'диапазон поиска аналогичных усл. форматов
Set iDiapazon = Intersect(iCell.SpecialCells(xlCellTypeSameFormatConditions), iDiapazon) 'определение пересечения диапазона
For Each rCell In iDiapazon
    If rCell > 0 Then rCell.EntireRow.Hidden = True
Next rCell
End Sub
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 27.11.2012, 19:30   #18
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Вот ЗДЕСЬ можно еще посмотреть о работе с условным форматированием
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 27.11.2012, 21:01   #19
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Спасибо, попробую и отпишусь.
strannick вне форума Ответить с цитированием
Старый 28.11.2012, 00:08   #20
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
Вот ЗДЕСЬ можно еще посмотреть о работе с условным форматированием
Да, помогло. Вот этот код:
Код:
Range("A1:C100").FormatConditions.Delete
снял с листа все правила. Ну, а дальше провел удаление строк в зависимости от значения в ячейке.
Спасибо!
strannick вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление строк Zelenaya Microsoft Office Excel 6 26.09.2012 09:55
Удаление строк chipesca Microsoft Office Excel 0 06.06.2012 20:05
Удаление строк Trimbl Microsoft Office Excel 13 18.10.2010 13:19
перенос строк удаление ненужных строк HelperAwM Microsoft Office Excel 5 26.06.2010 18:42
Удаление строк в зависимости от заливки Scolopendra Microsoft Office Excel 8 24.10.2008 06:54