Создание автоматического макроса по сортировке
Создать автоматический макрос по сортировке по столбцу "Абсолютная успеваемость, проц." (Листа5, табл.6) Встаем на лист, где будет макрос. Включаем запись макроса Сервис→Макрос→Начать запись→ОК. Появится квадрат, где кнопка остановить запись. На Листе5 (отчет) выделяем таблицу без заголовков и итогов, копируем на Лист9 (автосортировка) в элементе меню выбираем Данные→Сортировка→по возрастанию→по столбцам→ОК. Отмечаем столбец по которому будем сортировать. Нажимаем кнопку остановить запись. Sub Макрос1Сортировка () ' ' Макрос1Сортировка Макрос ' ' Sheets (" Лист 5"). Select Range ("A2: H17"). Select Selection. Copy Sheets (" Лист 7"). Select Range ("A2: A3"). Select ActiveSheet. Paste Application. CutCopyMode = False Range ("A5: H17"). Select ActiveWorkbook. Worksheets (" Лист 7"). Sort. SortFields. Clear ActiveWorkbook. Worksheets (" Лист 7"). Sort. SortFields. Add Key: =Range ("A5"), _ SortOn: =xlSortOnValues, Order: =xlAscending, DataOption: =xlSortNormal With ActiveWorkbook. Worksheets (" Лист 7"). Sort . SetRange Range ("A4: H17") . Header = xlYes . MatchCase = True . Orientation = xlTopToBottom . SortMethod = xlPinYin . Apply End With End Sub Рис.7. Данные таблицы после авто-сортировки Выборка данных
Создать отчёт по выборке с Листа5 по столбцу "Качественная успеваемость, проц." (с Листа 8, табл.7) Для того чтобы произвести выборку данных необходимо выполнить следующие действия: Определить количество элементов нового массива по заданному условию введя переменную с помощью оператора InputBox Объявить и переобъявить новый массив Сформировать новый массив. Для этого необходимо задать номер первого элемента нового массива u=1. Затем выполняется цикл, в котором записывается условие выборки по столбцу "Качественная успеваемость, проц. ". Если результат проверки истина, то элемент анализируемого массива становится элементом нового массива.
Вывести новый элемент на Лист 8
Sub ОтчётВыборка () Sheets (" Лист 8"). Select Dim A () As Variant n1 = Sheets (" Лист 4"). Cells (5,12) m = Sheets (" Лист 2"). Cells (5,12) ReDim A (1 To n1, 1 To m) VVOD " Лист 5", A, n1, m, 4 C = InputBox (" Введите условие ") Sheets (" Лист 8"). Cells (5,11) = C d = 0 For i = 1 To n1 If A (i, 8) > Sheets (" Лист 8"). Cells (5,11) Then d = d + 1 End If Next i Sheets (" Лист 8"). Cells (5,10) = d Dim B () As Variant ReDim B (1 To d, 1 To m) u = 1 For i = 1 To n1 If A (i, 8) > Sheets (" Лист 8"). Cells (5,11) Then For j = 1 To m B (u, j) = A (i, j) Next j u = u + 1 End If Next i S = 0 For i = 1 To d For j = 1 To m Sheets (" Лист 8"). Cells (i + 4, j) = B (i, j) Next j Next i End Sub Рис.6. Данные таблицы после выборки Создание автоматического макроса по выборке
Включаем запись макроса. Сервис→Макрос→Начать запись→ОК. Появится квадрат, где кнопка остановить запись. На Листе5 (отчет) выделяем таблицу без заголовков и итогов, копируем на Лист10 (автовыборка). Выделяем таблицу без заголовков и в элементе меню, выбираем Данные→Фильтр→Автофильтр→выбираем условие→ОК. Отмечаем столбец по которому будем сортировать. Завершаем работу макроса. Sub Макрос2Выборка () ' ' Макрос2Выборка Макрос ' ' Sheets ("Лист5"). Select Selection. Copy Sheets ("Лист9"). Select ActiveSheet. Paste Range ("H5: H17"). Select Application. CutCopyMode = False Selection. AutoFilter ActiveSheet. Range ("$H$5: $H$17"). AutoFilter Field: =1, Criteria1: =">80", _ Operator: =xlAnd Range ("G22"). Select End Sub Рис.7. Данные таблицы после авто-выборки
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|