Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabExcel07.doc
Скачиваний:
24
Добавлен:
14.03.2016
Размер:
834.05 Кб
Скачать

3.2.7. Условное форматирование и автофильтр

Шаги для выполнения условного форматирования были описаны выше. Единственная подсказка - условное форматирование выполняется по формуле:

=$AB21=1

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

Вы, наверное, обратили внимание, что у некоторых ячеек имеются кнопки, вызывающие список значений:

Это образуется не с помощью элементов интерфейса, а с помощьюавтофильтра. Для его установления используют команду "Фильтр/Автофильр" из меню "Данные". Он устанавливается на все выделенные ячейки в строке и смежные с ними ячейки с данными. Снятие автофильтра производится той же командой. Так, после столбца с температурой, отсортированной в порядке убывания, на листе пустой столбец. Если бы он имел значения, то автофильтр был бы установлен и на него (даже если его не выделить).

Выбор одного из значений приводит к отображению только тех строк, которые в данном столбце содержат выбранное значение.

План лабораторной работы: Контрольные вопросы

3.2.8. Составление программы

В программе используется типовой алгоритм поиска максимума, минимума. Блок-схема алгоритма поиска максимума имеет вид:

Отличием программы от этой блок-схемы является то, что цикл начинается с первого элемента (с первой ячейки), так как цикл предназначен для вычисления еще нескольких параметров. Программа достаточно простая и Вы с ней легко разберетесь. В главном цикле перебираются все ячейки с данными и накапливаются суммы температур (для вычисления среднего) за каждый день (первая колонка StDay(i, 1)). Кроме того, вычисляются максимальные(вторая колонкаStDay(i, 2)) и минимальные (третья колонкаStDay(i, 3))значения за каждый день. В цикле использован интересный прием. Как узнать какой день обрабатывается? Для этого необходим счетчик - переменнаяCount, которая содержит номер дня, к которому относится текущее значение переменнойObj (текущая ячейка). Как только день обработан, переменнаяCount наращивает значение на единицу, а если это был последний день (т.е.Count стала равна 11 после добавления единицы), то переменнуюCount снова делают равной 1.

Рассмотрим участок, где формируется список дней

Fori = 1To10

' Для получения среднего необходимо разделить сумму на

' число лет наблюдения

' Заносим данные в список

ListBox1.AddItem "День " & i & ": " ' Первая колонка с названием дня

Для добавления новой строки в список используется метод AddItem (он позволяет занести данные в первую колонку списка, если их несколько). Объект ListBox1 имеет свойство ColumnCount равное четырем, а свойство ColumnWidth равное 49.95 пт;35 пт;35 пт;35 пт (при задании свойства можно просто перечислять цифры через точку с запятой без букв "пт" - пункт). Первое свойство задает число колонок, а второе свойство их ширину (поэтому чисел четыре). Далее с помощью свойства List задаются значения еще трех колонок первой строки.

' Вторая колонка со средним значением

ListBox1.List(i - 1, 1) = Format(StDay(i, 1) / 30, "0.00")

Обратите внимание, что счет строк в объекте класса "Список" начинается с нуля, поэтому указывается номер строки какi -1. Следующий параметр отражает номер колонки - 1 (счет тоже начинается с нуля).

Sum=Sum+ StDay(i, 1) / 30' накапливаем сумму средних значений

' Третья колонка с максимальным значением

ListBox1.List(i - 1, 2) = StDay(i, 2)

' Ищем максимальное значение

IfMax< StDay(i, 2)Then

Max= StDay(i, 2)

EndIf

' Четвертая колонка с минимальным значением

ListBox1.List(i - 1, 3) = StDay(i, 3)

' Ищем минимальное значение

IfMin> StDay(i, 3)Then

Min= StDay(i, 3)

End If

Nexti

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