Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
18.04.2024, 23:05:32

Войти
На форуме добавлена возможность подписки на RSS-ленты любого раздела форума. Подписаться можно, нажав на иконку RSS , расположенную левее наименования раздела.
33 242 Сообщений в 5 457 Тем от 6 758 Пользователей
Последний пользователь: Сергей2662
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  очистка скрытых фильтром строк
Страниц: [1]   Вниз
Печать
Автор Тема: очистка скрытых фильтром строк  (Прочитано 5314 раз)
0 Пользователей и 1 Гость смотрят эту тему.
pton
Новичок
*

Репутация: +4/-0
Офлайн Офлайн

Сообщений: 17


Просмотр профиля E-mail
« : 02.12.2017, 14:04:30 »

Здравствуйте!

Задача состоит в маркировке определенных строк. В определенный столбец заносится определенный символ. При выборе фильтра и нажатии на определенную кнопку должны маркироваться выбранные записи. Соответственно предыдущая маркировка должна быть очищена

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

Код типа
Код: (vb)
Columns(1).SpecialCells(xlCellTypeConstants, xlTextValues).Clear

или
Код: (vb)
Columns(1).Clear

или
Код: (vb)
Columns(1).ClearContents

очищают только отфильтрованные видимые ячейки

Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #1 : 02.12.2017, 16:01:54 »

Попробуйте так:
Код: (vb)
Range("A:A").Value = Empty
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
pton
Новичок
*

Репутация: +4/-0
Офлайн Офлайн

Сообщений: 17


Просмотр профиля E-mail
« Ответ #2 : 02.12.2017, 16:32:05 »

Результат тот же. После снятия фильтра значения скрытых строк остались
« Последнее редактирование: 02.12.2017, 17:02:29 от vikttur » Записан
vikttur
Глобальный модератор
Ветеран
*****

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #3 : 02.12.2017, 17:20:20 »

Чистить в цикле
Код: (vb)
    With Worksheets("Лист1")
        lRw = .UsedRange.Rows.Count
        If lRw < 2 Then Exit Sub ' только шапка, данных нет
        
        For i = 2 To lRw
            .Cells(i, 1).ClearContents
        Next i
    End With

Еще вариант: запомить фильтры, раскрыть, данные удалить, вернуть фильтры.
« Последнее редактирование: 02.12.2017, 17:22:23 от vikttur » Записан
vikttur
Глобальный модератор
Ветеран
*****

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #4 : 02.12.2017, 17:41:58 »

Кросс
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=98809&TITLE_SEO=98809-ochistka-skrytykh-filtrom-strok&MID=816393&result=edit#message816393
Записан
pton
Новичок
*

Репутация: +4/-0
Офлайн Офлайн

Сообщений: 17


Просмотр профиля E-mail
« Ответ #5 : 02.12.2017, 17:52:58 »

Еще вариант: запомить фильтры, раскрыть, данные удалить, вернуть фильтры.

Пробовал даже создать класс который будет сохранять и восстанавливать фильтр. Но параметр Criteria может быть и строкой и числом и объектом. Получается что я не каждый фильтр смогу восстановить

За пост темы на разных форумах простите. Не думал, что это запрещено и обидеть никого не хотел. Ответ решения задачи напишу во всех постах

Записан
pton
Новичок
*

Репутация: +4/-0
Офлайн Офлайн

Сообщений: 17


Просмотр профиля E-mail
« Ответ #6 : 02.12.2017, 18:37:43 »

Решение найдено здесь http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=98809&TITLE_SEO=98809-ochistka-skrytykh-filtrom-strok&MID=816380&result=new#postform

Решение такое
Код: (vb)

    ActiveWorkbook.CustomViews.Add ViewName:="TempView", RowColSettings:=True
    ' -------------------------------------------------
    ' Отключаем фильтр и выполняем необходимые действия
    ' -------------------------------------------------
    ActiveWorkbook.CustomViews("TempView").Show
Записан
Lis
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 1


Просмотр профиля E-mail
« Ответ #7 : 13.02.2019, 19:55:58 »

Решение найдено
При таком решении важно, чтоб в файле не было умных таблиц, а иначе возникнет ошибка '1004'.
« Последнее редактирование: 13.02.2019, 20:06:40 от vikttur » Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru