powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Критерии для автофильтра из макроса
16 сообщений из 16, страница 1 из 1
Критерии для автофильтра из макроса
    #37767131
Valll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал автофильтр. С помощью макрорекордера создал макрос, который точно повторяет фильтрацию по 2-м критериям. Вручную всё работает. Запускаю через макрос - лезет чушь... Что не так делаю? Подскажите. Файл с примером прилагаю.
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #37767153
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проходили уже.... он не справился с правилльным занесением даты, обрати внимание, какая дата стоит в условии отбора по первому столбцу...


вылечить так:
Код: vbnet
1.
Criteria1:= "<2012-01-10"
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #37767154
ElenHim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valll Что не так делаю

Из опыта, программировать автофильтр - не лучшая практика.

Тем не менее, если очень хочется, лучше передавать критерии в массиве

Field:=1, Operator:=xlFilterValues, Criteria1:=Array("01.01.2012", "02.01.2012", "03.01.2012", "04.01.2012", "05.01.2012")

ValllХотелось бы, чтобы в качестве критерия было условие: <текущая дата + три дня.


Соответственно, можете предварительно забить в переменную массива нужные даты, и присваивать критерию
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #37767159
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valll,

Можно чуть проще:
Код: vbnet
1.
2.
3.
    With ActiveSheet.Range("$C$4:$F$20")
        .AutoFilter 2, "=", 1: .AutoFilter 1, "<01/10/2012", 1
    End With


А причина в дате - Вы вручную гляньте, что в фильтре прописано после Вашего макроса.
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #37767171
Valll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за быструю помощь. Уже мозги кипят. Думал простенько, быстро сделаю, а получилось... Попробую все ваши варианты. Даты в макросе я смотрел - одинаково всё. Только месяц (1). Поставил (01) ничего не изменилось. Глюк, точно.

PS

Уж коль про глюки с датами заговорили, тоже поделюсь наблюдением. Я здесь макрос накатал как-то, про быстрый ввод дат. Так вот, пока его обдумывал с расчётом номеров недель (ещё та задачка) правильных решений я в интернете так и не увидел, пришлось сделать техническую программку, которая визуально показывала номер недели на любой год. Для решения этой задачи мне пришлось тянуть даты вниз в таблице на 50 лет вперёд!!! От такой протяжки, 3 раза Эксель ОШИБАЛСЯ с порядком дат! Пришлось ещё макрос писать для проверки порядка дат... Так что проверяйте даты после "протяжки".
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #37767184
Valll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, Hugo, проверил оба варианта - всё работает!

Elen, ваш вариант попробую позже - уже сплю...

Ещё раз, спасибо!
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #37767205
ElenHim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121Можно чуть проще

Вы так плохому научите)Никогда не ленитесь явно указывать свойства.


Известны 10 преимуществ Паскаля перед Си:)
Я приведу только одно, но самое важное.
На Си вы можете написать:
for(;P("\n").R-;P("\ "))for(e=3DC;e-;P("_ "+(*u++/8)%2))P("| "+ (*u/4)%2);
На Паскале Вы НЕ МОЖЕТЕ такого написать
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #37767228
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenHimВы так плохому научите)Никогда не ленитесь явно указывать свойства.

+100500

ElenHimНа Си вы можете написать:
for(;P("\n").R-;P("\ "))for(e=3DC;e-;P("_ "+(*u++/8)%2))P("| "+ (*u/4)%2);

Краткость - сестра таланта (c) Чехов

ElenHimНа Паскале Вы НЕ МОЖЕТЕ такого написать

Но ведь ЭТО проблемы Паскаля :)
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #37767267
ElenHim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,


Сам при этом не присутствовал, но врядли Чехов имел ввиду программирование?

Вы вырвали из контекста, а на самом деле у меня про это:

кто-тоПишите код, исходя из того, что все программисты, которые будут сопровождать вашу программу, — склонные к насилию психопаты, знающие, где вы живёте.
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #37767276
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenHimкто-то
говорят - Мартин Голдинг.
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #37767279
ElenHim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник


Shocker.Proговорят - Мартин Голдинг


Спасибо, это важно.
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #37767283
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElenHim,
если бы я не ленился - я так бы и делал всё ручками, а не кодом :)
А т.к. я не программист - пишу как умею/хочу, мне за это не платят :(
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #37767284
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, против критики ничего не имею. Но все эти := прописывать не начну :)
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #37767582
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: ElenHim
OFF> Пишите код, исходя из того, что все программисты, которые будут сопровождать вашу
программу, — склонные к насилию психопаты, знающие, где вы живёте.

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


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #37999600
Gai_Ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElenHim,

Извините, можно я вмешаюсь, просто похож на мой макрос, а как сделать что бы в критерии не перечислялись изначальные значения как эти например : ActiveSheet.Range("$A$1:$M$55934").AutoFilter Field:=11, Criteria1:=Array( _
"1", "10", "100", "102", "105", "11", "110", "111", "112", "114", "118", "12", "120", "121", _
"126", "128", "13", "131", "136", "137", "138", "14", "142", "144", "149", "15", "16", "17", _
"176", "177", "18", "185", "19", "2", "20", "21", "210", "22", "23", "232", "24", "25", "26", _
"27", "271", "28", "29", "3", "-3", "30", "31", "311", "32", "33", "34", "35", "36", "37", _
"376", "38", "39", "4", "40", "41", "42", "43", "44", "45", "46", "47", "49", "5", "50", "52", _
"53", "54", "55", "56", "58", "59", "6", "60", "61", "64", "67", "68", "69", "7", "74", "76", _
"77", "78", "8", "81", "82", "86", "88", "89", "9", "90", "98"), Operator:= _
xlFilterValues

А задать диапозон от -100 до 100, без пробелов и что бы не забивать каждое отдельное значение. Возможно ли это как то сделать?
...
Рейтинг: 0 / 0
Критерии для автофильтра из макроса
    #38006624
_slan_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gai_Ka,


вот что нам дает макрорекордер:


ActiveSheet.Range("$A$1:$A$4").AutoFilter Field:=1, Criteria1:=">=2", _
Operator:=xlAnd, Criteria2:="<=3"
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Критерии для автофильтра из макроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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