Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык Visual Basic for Applications Билеты Bilety_Po_Programmirovaniyu.docx
Скачиваний:
30
Добавлен:
15.03.2015
Размер:
458.22 Кб
Скачать

Билет №21

Расширенный фильтр. Обращение к расширенному фильтру, формирование критериев фильтрации и выходного диапазона. Примеры.

Расширенный фильтр по сравнению с автофильтром  обладает следующими преимуществами:

1) позволяет создавать критерии с условиями по нескольким полям; 2) позволяет создавать критерии с тремя и более условиями; 3) позволяет создавать вычисляемые критерии; 4) позволяет копию полученной в результате фильтрации выборки помещать в другое место рабочего листа.

При работе с расширенным фильтром необходимо определить три области : 1) исходный диапазон (интервал списка) - область базы данных; 2) диапазон условий (интервал критериев) - область, содержащая критерии фильтрации, которые могут находиться и на отдельном листе ;

  1. диапазон результата (интервал извлечения) - область, в которую необходимо скопировать выборку (можно указать только адрес левого верхнего угла), она не задается в случае фильтрации списка на том же самом месте.

IRange – входной диапазон

Orange – выходной диапазон

CRange – диапазон условий или критерий

Public Orange As Range

Public orange1 As Range

Public i As Byte

Private Sub ad_filter(ByVal Crange As Range)

Dim Irange As Range

Dim finalRow As Long

i = i + 1

If i > 1 Then

orange1.Clear

CheckBox1.Value = False

End If

finalRow = Cells(Rows.Count, 1).End(xlUp).Row

'определение исходного диапазона

Set Irange = Worksheets("Лист1").Range("A1:e" & finalRow)

'определение верхней левой ячейки выходного диапазона

Set Orange = Range("A" & finalRow + 2)

'фильтрация

Irange.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Orange, CriteriaRange:=Crange

'определение диапазона результатов (полного)

Set orange1 = Orange.CurrentRegion

' отображение результата фильтрации в ListBox1

With ListBox1

.ColumnCount = 5

.ColumnWidths = "0,120,0,50,20"

.ColumnHeads = False

.RowSource = orange1.Address

End With

End Sub

Вопрос 22

В VBA для осуществления сортировки данных с учетом до трех

критериев, по которым производится сортировка, применяется метод

Sort, который позволяет сортировать строки списков, сводных таблиц

и баз данных, а также столбцы рабочих листов.

Синтаксис:

Объект. Sort (key1, order1, key2, order2, key3, order3, header,

orderCustom, matchCase, orientation)

Аргументы:

Объект

Диапазон, который будет сортироваться

key1

Ссылка на первое упорядочиваемое поле

order1

Задает порядок упорядочивания. Допустимые значения:

  • x1Ascending (возрастающий порядок)

  • x1Descending (убывающий порядок)

key2

Ссылка на второе упорядочиваемое поле

order2

Задает порядок упорядочивания. Допустимые

значения:

  • x1Ascending (возрастающий порядок)

  • x1Descending (убывающий порядок) 109

Key3

Ссылка на третье упорядочиваемое поле

Order3

Задает порядок упорядочивания. Допустимые значения:

  • x1Ascending (возрастающий порядок)

  • x1Descending (убывающий порядок)

header

Допустимые значения:

  • x1Yes (первая строка диапазона содержит заголовок, который не сортируется)

  • x1No (первая строка диапазона не содержит заголовок)

  • x1Guess (Excel решает, имеется ли заголовок)

orderCustom

Пользовательский порядок сортировки. По умолчанию используется Normal

matchCase

Допустимые значения: True (учитываются регистры)

и Fulse (регистры не учитываются)

orientation

Допустимые значения:

  • x1TopToBottom (сортировка осуществляется сверху вниз, т.е. по строкам),

  • x1LeftToRight ( по столбцам)

Примеры:

  1. With Range("A1:G" & Cells(Rows.Count, 1).End(xlUp).Row) 'сортировка по строкам; метод Sort  

  2.  .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _  

  3.  Key2:=.Cells(1, 2), Order2:=xlAscending, _  

  4.  Key3:=.Cells(1, 3), Order3:=xlAscending, Header:=xlYes, MatchCase:=False  

  5. End With 

With Range("A1").CurrentRegion 'сортировка по столбцам; метод Sort  

 .Sort Key1:=.Cells(1), Order1:=xlAscending, Orientation:=xlLeftToRight  

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]