powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получить отфильтрованный диапазон в объект Range
9 сообщений из 9, страница 1 из 1
Получить отфильтрованный диапазон в объект Range
    #39511587
Даниил Пакоv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуста, как я могу получить отфильтрованный диапазон в переменную типа Range?
...
Рейтинг: 0 / 0
Получить отфильтрованный диапазон в объект Range
    #39511600
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даниил Пакоv,

SpecialCells(xlCellTypeVisible)
...
Рейтинг: 0 / 0
Получить отфильтрованный диапазон в объект Range
    #39511718
Даниил Пакоv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не выходит что то у меня.
Вот отбираю записи
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub ФилтрПоУслуге(НазваниеУслуги As String)
 
 
 Dim MyRng As Range
 Set MyRng = Nothing
 
 
 Set MyRng = ActiveWorkbook.Worksheets("Выполнено").Range("$A$5:$N$" & GetLastRow("Выполнено"))
 
 MyRng.AutoFilter Field:=8, Criteria1:=НазваниеУслуги
 Set ReSultRng = MyRng.SpecialCells(xlCellTypeVisible)
 MyRng.AutoFilter


Модератор: Учимся использовать тэги оформления кода - FAQ
А дальше как?
Как обойти оотфильтрованные записи ReSultRng в цикле, помогите пожалуста!
...
Рейтинг: 0 / 0
Получить отфильтрованный диапазон в объект Range
    #39512552
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых, если вы хотите "обойти именно отфильтрованные записи" - то автофильтр в это время должен быть "пока еще наложен". То есть до снятия фильтра нужно выполнить что-то вроде
Код: vbnet
1.
2.
3.
For Each myRow in ReSultRng.Rows
    ...
Next


Если надо просто запомнить данные "на будущее", и обработать потом, а фильтр сбросить, то можно диапазон ReSultRng куда-нибудь скопировать, в том числе и в память:
Код: vbnet
1.
myArray = ReSultRng.Value
...
Рейтинг: 0 / 0
Получить отфильтрованный диапазон в объект Range
    #39512587
Даниил Пакоv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благадарю, а какого типа должен быть mArray?
...
Рейтинг: 0 / 0
Получить отфильтрованный диапазон в объект Range
    #39512613
Даниил Пакоv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim mArray As Variant ?
...
Рейтинг: 0 / 0
Получить отфильтрованный диапазон в объект Range
    #39512620
Даниил Пакоv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Описал я его как Dim mArray(), но туды скопировалась только первая строчка отфильтрованного диапазона...(
...
Рейтинг: 0 / 0
Получить отфильтрованный диапазон в объект Range
    #39513136
Даниил Пакоv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз, пожалуйста поподробнее... Отфильтровываю записи так

MyRng.AutoFilter Field:=8, Criteria1:=МойФильтр
Set ReSultRng = MyRng.SpecialCells(xlCellTypeVisible)

Пытаюсь их перебрать так

For Each myrow In ReSultRng.Rows
With myrow
i = i + 1
v = .Value

End With
Но в итоге пробегаю весь лист (так, как будто фильтра не было)!!!

Хотя при использовании MyRng.Copy
и Sheet("NewSheet").Paste
на лист копируются только отфильтрованный набор записей
В чем я ошибаюсь, помогите пожалуста
...
Рейтинг: 0 / 0
Получить отфильтрованный диапазон в объект Range
    #39513177
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даниил Пакоv, я уже дал вам ссылку, пожалуйста используйте оформление кода.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получить отфильтрованный диапазон в объект Range
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]