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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2011, 11:56   #1
vbapple
Новичок
Джуниор
 
Аватар для vbapple
 
Регистрация: 11.07.2011
Сообщений: 4
По умолчанию MS Exel 2003 макрос с фильтрами

Доброго времени суток! Итак нужна помощь в следущем. Есть таблица в которой очень много строк. таблица отфильтровуется по 3-ти критериям.
Выбираем 1-й критерий, 2-й критерий. и нужно что 3-й выбирался цыклом с 1 по последнее значение и уходил на печать.


Selection.AutoFilter Field:=3, Criteria1:="как здесь указать номер в списке фильтра а не его значение...?"
Range("D7:D8").Select
Selection.AutoFilter Field:=3, Criteria1:="как здесь указать номер в списке фильтра а не его значение...?"
ActiveWindow.SelectedSheets.PrintOu t Copies:=1
End Sub
vbapple вне форума Ответить с цитированием
Старый 11.07.2011, 12:51   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Никак. Надо самому выделять уникальные значения. Попробуйте:
Код:
Sub vbapple()
Dim c
Cells.AutoFilter field:=3 'снять 3-й фильтр
On Error Resume Next
With CreateObject("scripting.dictionary")
    Set c = ActiveSheet.AutoFilter.Range.Columns(3).Cells(2)
    For Each c In Range(c, Cells(Rows.Count, c.Column).End(xlUp)).SpecialCells(xlCellTypeVisible)
        .Add c.Text, "0"
    Next
    For Each c In .Keys
        Cells.AutoFilter field:=3, Criteria1:=c
        ActiveSheet.PrintOut
    Next
End With
Cells.AutoFilter field:=3 'снять 3-й фильтр
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 11.07.2011, 21:10   #3
vbapple
Новичок
Джуниор
 
Аватар для vbapple
 
Регистрация: 11.07.2011
Сообщений: 4
Злость

Цитата:
Сообщение от Казанский Посмотреть сообщение
Никак. Надо самому выделять уникальные значения. Попробуйте:
Код:
Sub vbapple()
Dim c
Cells.AutoFilter field:=3 'снять 3-й фильтр
On Error Resume Next
With CreateObject("scripting.dictionary")
    Set c = ActiveSheet.AutoFilter.Range.Columns(3).Cells(2)
    For Each c In Range(c, Cells(Rows.Count, c.Column).End(xlUp)).SpecialCells(xlCellTypeVisible)
        .Add c.Text, "0"
    Next
    For Each c In .Keys
        Cells.AutoFilter field:=3, Criteria1:=c
        ActiveSheet.PrintOut
    Next
End With
Cells.AutoFilter field:=3 'снять 3-й фильтр
End Sub
В визул бейсике я несовсем понимаю. вижу 2 цыкла но непойму что в них делается
vbapple вне форума Ответить с цитированием
Старый 11.07.2011, 22:28   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

В первом цикле перебираются видимые (отфильтрованные) ячейки третьего столбца диапазона автофильтра и создается "словарь" из записей с уникальными ключами.
Во втором цикле перебираются элементы массива ключей, каждый элемент подставляется в критерий автофильтра и лист распечатывается.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 11.07.2011, 23:38   #5
vbapple
Новичок
Джуниор
 
Аватар для vbapple
 
Регистрация: 11.07.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
В первом цикле перебираются видимые (отфильтрованные) ячейки третьего столбца диапазона автофильтра и создается "словарь" из записей с уникальными ключами.
Во втором цикле перебираются элементы массива ключей, каждый элемент подставляется в критерий автофильтра и лист распечатывается.
Огромное спасибо
vbapple вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access Exel 2003. Jonestown Помощь студентам 0 06.06.2011 07:25
Параметры страницы (Exel 2003) ob60 Microsoft Office Excel 2 17.02.2011 16:43
Exel - при открытии файла через макрос, если файл отсутствует - виснет весь макрос gregory1b Microsoft Office Excel 2 14.10.2010 11:51
Не хватает столбцов в Exel 2003 Anhel Microsoft Office Excel 4 21.04.2010 14:03
Выделение ячеек в Exel 2003. Срочно! Fanta Microsoft Office Excel 22 15.03.2010 15:54