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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2010, 13:19   #1
KOHCEPBATOP
Пользователь
 
Регистрация: 13.04.2010
Сообщений: 17
По умолчанию Перейти на следующую строку в фильтре

На лист наложен фильтр. Точно известно, что текущая ячейка принадлежит неотфильтрованной строке. Как перейти на следующую [неотфильтрованную] строку?
KOHCEPBATOP вне форума Ответить с цитированием
Старый 26.08.2010, 16:42   #2
Useful83
 
Аватар для Useful83
 
Регистрация: 06.04.2010
Сообщений: 9
По умолчанию Re

Tak?..........
Вложения
Тип файла: rar Excel.rar (2.2 Кб, 24 просмотров)
MY EXCEL WORLD ONE WORLD ONE DREAM! Best regards Aydin Aliyev!
Useful83 вне форума Ответить с цитированием
Старый 27.08.2010, 08:17   #3
KOHCEPBATOP
Пользователь
 
Регистрация: 13.04.2010
Сообщений: 17
По умолчанию

Нет.
1. Нужно перейти не за область данных, а последовательно перемещаться по строкам. Только переход должен быть не на следующую по номеру (Row+1), а на следующую видимую строку.
2. Реализовать это на VBA.

Идея: наложен фильтр; вызываем макрос; он обрабатывает ячейку, на которой находится курсор; курсор перемещается на следующую ячейку в колонке.
KOHCEPBATOP вне форума Ответить с цитированием
Старый 27.08.2010, 08:35   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
Идея: наложен фильтр; вызываем макрос; он обрабатывает ячейку, на которой находится курсор; курсор перемещается на следующую ячейку в колонке.
Плохая идея. Точнее, плохая реализация идеи.
Не надо вообще выделять ячейки - в данном случае это сильно усложнит код.

Правильно будет так: (обрабатывать видимые ячейки фильтруемого диапазона)
Код:
Sub test()
    Dim cell As Range, ra As Range: Application.ScreenUpdating = False
    Set ra = Range([A2], Range("A" & Rows.Count).End(xlUp))
    ' обрабатываем только видимые ячейки
    For Each cell In ra.SpecialCells(xlCellTypeVisible)
        cell.Value = cell.Value & " - эта строка неотфильтрована"
    Next cell
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 27.08.2010, 11:10   #5
KOHCEPBATOP
Пользователь
 
Регистрация: 13.04.2010
Сообщений: 17
По умолчанию

EducatedFool
Спасибо! SpecialCells(xlCellTypeVisible) помогло.
KOHCEPBATOP вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос из формы в следующую строку 2го листа oleg_sh Microsoft Office Excel 17 03.07.2010 18:15
Перейти на следующую запись в форме Swatch Microsoft Office Access 2 12.03.2010 22:56
Перемещение на следующую строку в RichEdit, как?? IIpopoK Общие вопросы Delphi 24 30.05.2009 13:08
Перенос текста на следующую строку в TEdit uraura Общие вопросы Delphi 3 17.04.2009 18:13