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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2019, 16:30   #1
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию Расширенный фильтр в vba

Добрый день.
Что-то никак не получается побороть расширенный фильтр запускаемый макросом.

Проблемы:
1) код выполнялся но фильтр не срабатывал, как буд-то бы его и нет
2) после попыток найти причину, теперь выдает ошибку "runtime error 1004 application-defined or object-defined error"

Суть задачи такая:
На одном листе есть таблица с исходными данными. На втором листе условия для расширенного фильтра (2 столбца).
Надо макросом сделать фильтр по заданным на втором листе условиям.

Буду очень благодарен за помощь.

Код:
'Определяем размер получившейся таблицы
Sheets("BO_фильтр").Select
lLastRowExcelTemp1 = Cells(Rows.Count, 1).End(xlUp).Row 'последняя заполненная строка
lLastRowExcelTemp2 = Cells(Rows.Count, 2).End(xlUp).Row 'последняя заполненная строка
If lLastRowExcelTemp1 > lLastRowExcelTemp2 Then
lLastRowExcelTemp = lLastRowExcelTemp1
Else: lLastRowExcelTemp = lLastRowExcelTemp2
End If


    Sheets("ВО").Select
'    ActiveSheet.ShowAllData 'очищаем лист от автофильтров
    Range("A1").Select
    Columns("A1:H19").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
       Sheets("BO_фильтр").Range(Cells(1, 1), Cells(lLastRowExcelTemp, 2)), Unique:=False
Вложения
Тип файла: 7z Пример1.7z (15.7 Кб, 17 просмотров)
Нет ничего невозможного, главное верить в это.

Последний раз редактировалось Snekich; 26.10.2019 в 04:41.
Snekich вне форума Ответить с цитированием
Старый 26.10.2019, 06:09   #2
Elixi
Форумчанин
 
Регистрация: 10.05.2019
Сообщений: 163
По умолчанию

если в указаном вами диапазоне "CriteriaRange:=" будет хоть одна пустая строка то фильтр не сработает
Elixi вне форума Ответить с цитированием
Старый 26.10.2019, 11:09   #3
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию

Цитата:
Сообщение от Elixi Посмотреть сообщение
если в указаном вами диапазоне "CriteriaRange:=" будет хоть одна пустая строка то фильтр не сработает
этот этап уже прошел методом проб и ошибок.
для этого определяю lLastRowExcelTemp как последнюю заполненную ячейку из двух столбцов. В свою очередь внутри диапазона пустых строк тоже нет.
Но фильтр все равно не работает(
Нет ничего невозможного, главное верить в это.
Snekich вне форума Ответить с цитированием
Старый 26.10.2019, 11:31   #4
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию

Проблема в этом код, но не пойму какая
Код:
Range(Cells(1, 1), Cells(lLastRowExcelTemp, 2)
Если вместо него поставить
Код:
Range("A1:B7")
то работает.

Но в чем может быть причина?
Нет ничего невозможного, главное верить в это.
Snekich вне форума Ответить с цитированием
Старый 26.10.2019, 12:42   #5
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию

Решил вопрос.
Так работает:
Код:
           Range("A:H").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Sheets("BO_фильтр").Range("A1:B" & lLastRowExcelTemp), Unique:=False
Нет ничего невозможного, главное верить в это.
Snekich вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расширенный фильтр Пользователь1 Microsoft Office Excel 7 04.05.2011 19:08
VBA расширенный фильтр rjaba123 Помощь студентам 1 16.04.2011 00:02
расширенный фильтр Михаил2261 Microsoft Office Excel 1 03.05.2010 20:04
Расширенный фильтр (VBA) Flame811 Microsoft Office Excel 0 10.12.2009 15:46