Скачиваний:
5
Добавлен:
16.04.2021
Размер:
2.17 Mб
Скачать

ГУАП

КАФЕДРА № 41

ОТЧЕТ

ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

ассистент

М. С. Иванова

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №6

ФИЛЬТРАЦИЯ ДАННЫХ СРЕДСТВАМИ VBA

по курсу: ИНФОРМАЦИОННЫЕ СИСТЕМЫ И ТЕХНОЛОГИИ

РАБОТУ ВЫПОЛНИЛА

СТУДЕНТКА ГР.

4716

С.А. Янышева

подпись, дата

инициалы, фамилия

Санкт-Петербург

2019

Лабораторная работа № 6

ФИЛЬТРАЦИЯ ДАННЫХ СРЕДСТВАМИ VBA

Цель работы: получение практических навыков задания параметров автофильтрации исходных данных программными способами средствами VBA.

  1. Текст индивидуального задания

Вариант 18

  1. Используемые диалоговые окна

Рисунок 1 – Диалоговое окно

  1. Программные коды процедур

Module1

Sub ВыборкаДанныхПоФамилии()

'

' ВыборкаДанныхПоФамилии Макрос

'

'

ActiveSheet.Range("$A$1:$F$9").AutoFilter Field:=1, Criteria1:=Array( _

"Баранов", "Быков", "Рогачев"), Operator:=xlFilterValues

End Sub

Sub Очистка()

'

' Очистка Макрос

'

'

Range("F2:F9").Select

With Selection.Font

.ThemeColor = xlThemeColorLight1

.TintAndShade = 0

End With

With Selection.Interior

.Pattern = xlNone

.TintAndShade = 0

.PatternTintAndShade = 0

End With

End Sub

Лист1

Private Sub CommandButton1_Click()

Call ЗаданиеФильтра

End Sub

Private Sub CommandButton11_Click()

Call Очистка

End Sub

Private Sub CommandButton12_Click()

Call СнятиеАвтофильтра

End Sub

Private Sub CommandButton2_Click()

Call ФильтрУсловиеАфины

End Sub

Private Sub CommandButton3_Click()

Call Два_Условия

End Sub

Private Sub CommandButton4_Click()

Call ЗаданиеАвтофильраПоДвумСтобцам

End Sub

Private Sub CommandButton5_Click()

Call ЗаданиеФильтраПервые_10

End Sub

Private Sub CommandButton6_Click()

Call ЗаданиеФильтраЦвет_10

End Sub

Private Sub CommandButton7_Click()

Call ФильтрацияПоМесяцуГода

End Sub

Private Sub CommandButton8_Click()

Call ФильтрацияСортировкой

End Sub

Private Sub CommandButton9_Click()

Call массив_критериев_задать

End Sub

Private Sub CommandButton10_Click()

Call ПоискПоУсловию

End Sub

Private Sub ЗаданиеФильтра()

Range("A1:F9").Select

Selection.AutoFilter

End Sub

Sub ФильтрУсловиеАфины()

Range("A1:F1").Select

Selection.AutoFilter

Range("A1:F5").AutoFilter Field:=3, _

Criteria1:="=Афины", _

VisibleDropDown:=False

End Sub

Sub Два_Условия()

'Задание автофильтра

Range("A1:F1").Select

Selection.AutoFilter

'Задание значений параметров автофильтра

Range("A1:F5").AutoFilter Field:=4, _

Criteria1:=">=25000", _

Operator:=xlAnd, _

Criteria2:="<=30000"

'Вывод сообщения

MsgBox "Задали 2 условия на столбец 4"

End Sub

Sub ЗаданиеАвтофильраПоДвумСтобцам()

'Задание параметров двух критериев автофильтра в одном столбце

Range("A1:F9").AutoFilter Field:=4, _

Criteria1:=">=25000", _

Operator:=xlAnd, _

Criteria2:="<=30000"

'Вывод сообщения

MsgBox "Задали 2 условия на столбец 4"

'Задание параметров дополнительного критерия автофильтра

Range("A1:F9").AutoFilter Field:=3, _

Criteria1:="=Афины", _

VisibleDropDown:=False

MsgBox "Задали условие на столбец 3"

'Снятие параметров автофильтра

ActiveSheet.ShowAllData

MsgBox "Снятие условий фильтрации"

End Sub

Sub ЗаданиеФильтраПервые_10()

Range("A1:F9").AutoFilter Field:=4, _

Criteria1:="2", _

Operator:=xlBottom10Items

MsgBox "Отфильтровали две поездки с наименьшей стоимостью"

'*****************************************************

ActiveSheet.ShowAllData

MsgBox "Снятие условий фильтрации"

End Sub

Sub ЗаданиеФильтраЦвет_10()

Range("A1:F9").AutoFilter Field:=6, _

Criteria1:=vbRed, _

Operator:=xlFilterFontColor

MsgBox "Отфильтровали столбец 6 по цвету шрифта (красный)"

End Sub

Sub ФильтрацияПоМесяцуГода()

Range("A1:F9").AutoFilter Field:=5, _

Criteria1:=xlFilterAllDatesInPeriodDecember, _

Operator:=xlFilterDynamic

MsgBox "Отфильтровали декабрьские поездки"

'****************************************************

ActiveSheet.ShowAllData

MsgBox "Сняли условия фильтрации"

End Sub

Sub ФильтрацияСортировкой()

ActiveSheet.Range("$A$1:$F$9").AutoFilter Field:=1, _

Criteria1:=Array("Баранов", "Быков", "Рогачев"), _

Operator:=xlFilterValues

End Sub

Sub массив_критериев_задать()

Dim массив_критериев(1 To 3)

массив_критериев(1) = "Баранов"

массив_критериев(2) = "Быков"

массив_критериев(3) = "Рогачев"

ActiveSheet.Range("A1:F9").AutoFilter Field:=1, _

Criteria1:=массив_критериев(), _

Operator:=xlFilterValues

End Sub

Sub ПоискПоУсловию()

Dim S As Range

Dim SSS As Range

Set SSS = Лист1.Range("F2:F9")

'Задание цикла поиска по условию

For Each S In SSS

If S.Value >= 7 Then

'Установка параметра цвета

S.Interior.ColorIndex = 20

Else

S.Interior.ColorIndex = xlColorIndexNone

End If

Next S

End Sub

Sub автофильтр()

'Использование автофильтра для обычного диапазона

'Активизвция листа с именем «автофильтр»

Worksheets("Лист1").Activate

'Вывод сообщения о том, сколько автофильтров установлено «количество/0»

'и заданных условиях фильтрации «количество/0»

MsgBox "Фильтр на листе установлен: " & ActiveSheet.AutoFilterMode & vbNewLine & _

"Условия фильтации на листе заданы: " & ActiveSheet.FilterMode

'*********************************************

'Установка автофильтра с использованием метода AutoFilter объекта Range

Range("A1:F9").AutoFilter

'Вывод сообщений об установке автофильтров

MsgBox "Установили/сняли фильтр, условия отбора не задавали"

'Вывод сообщения о том, сколько автофильтров установлено «количество/0»

'и заданных условиях фильтрации «количество/0»

MsgBox "Фильтр на листе установлен: " & ActiveSheet.AutoFilterMode & vbNewLine & _

"Условия фильтации на листе заданы: " & ActiveSheet.FilterMode

'*****************************************

Range("A1:F9").AutoFilter Field:=4, _

Criteria1:=">=25000", _

Operator:=xlAnd, _

Criteria2:="<=30000"

'Вывод сообщения о задании условий на столбец

MsgBox "Задали 2 условия на столбец 4"

'Вывод сообщения о том, сколько автофильтров установлено «количество/0»

'и заданных условиях фильтрации «количество/0»

MsgBox "Фильтр на листе установлен: " & ActiveSheet.AutoFilterMode & vbNewLine & _

"Условия фильтации на листе заданы: " & ActiveSheet.FilterMode

End Sub

Sub СнятиеАвтофильтра()

Range("A1:F9").AutoFilter Field:=4, _

Criteria1:="2", _

Operator:=xlBottom10Items

MsgBox "Отфильтровали 2 поездки с наименьшей стоимостью"

'***********************************************

'Снятие всех фильтров

ActiveSheet.ShowAllData

'Вывод сообщения о снятии условий фильтрации

MsgBox "Сняли условия фильтрации"

End Sub

  1. Полученные результаты

Для удобства использования фильтров были созданы кнопки. В результате нажатия на кнопку «Добавить/убрать фильтр» в заголовках полей появятся кнопки раскрывающихся списков (Рисунок 2)

Рисунок 2 – Кнопки раскрывающихся списков

Нажав на кнопку «Автофильр по двум стобцам» вначале происходит фильтрация таблицы по столбцу «Сумма» (условие >=25000 и <=30000) рисунок 3. Далее происходит фильтрация по третьему столбцу (Направление «Афины») рисунок 4. Процедура заканчивается снятием условий фильтрации рисунок 5.

Рисунок 3 – Фильтрация по столбцу сумма

Рисунок 4 – Фильтрация по столбцу направление

Рисунок 5 – Снятие условий фильтрация

В столбце «Дней» текст в нужных нам ячейках сделали красным рисунок 6. Нажав кнопку «Фильтр по красному цвету» произошла фильтрация таблицы, результат на рисунке 7.

Рисунок 6 – Смена цвета в нужных ячейках

Рисунок 7 – Результат фильтрации по красному цвету

Нажав на кнопку «Поиск по условию» в столбце «Дней» выделились ячейки с условием >=7 (рисунок 8). Очистка этих ячеек осуществляется нажатием кнопки «Очистка заливки и цвета текста», результат продемонстрирован на рисунке 9.

Рисунок 8 – Выделенные ячейки

Рисунок 9 – Очистка столбца «Дней»

  1. Вывод

Я получила практические навыки задания параметров автофильтрации исходных данных программными способами средствами VBA. Научилась фильтровать данные по заранее заданным параметрам и убирать фильтры.

  1. Список используемых источников

  1. Уокенбах Д. Exel 2016. Библия пользователя / Д. Уокенбах. – М.:Вильямс, – 2018. – 1040 с.

  2. Аграновский, А. В. Обработка данных средствами электронных таблиц Microsoft Excel / А.В. Аграновский, Д.М. Ильинская, Е.Л. Турнецкая // Методические указания по выполнению лабораторных работ по курсу «Информационные системы и технологии». – СПб.: ГУАП. – 2016. – 55 с.

  3. Функции Excel [Электронный ресурс]

URL: https://support.office.com/ru-ru/article/Функции-Excel-по-категориям-5f91f4e9-7b42-46d2-9bd1-63f26a86c0eb

Соседние файлы в папке 2курс 2сем
  • #
    16.04.20211.03 Кб45 Абоненты.prn
  • #
    16.04.20211.03 Кб75 Абоненты.txt
  • #
    16.04.202124.31 Кб55 Текстовые файлы.xlsm
  • #
    16.04.20214.53 Mб75.docx
  • #
    16.04.202157.44 Кб56 Фильтры.xlsm
  • #
    16.04.20212.17 Mб56.docx