Алгоритм вывода списка элементов, удовлетворяющих определенному условию
Например, для данных, представленных в заданной таблице выведем на лист список сотрудников, отработавших больше 20 часов в таблицу с заголовками столбцов: «Фамилия», «Отдел», «Отработано часов».
Рассмотрим таблицу. Данные о количестве отработанных часов записаны в четвертом столбце, начиная со второй строки. Нам нужно просматривать четвертый столбец, и, если мы встретили значение больше 20, то выводить на лист фамилию, отдел и количество отработанных часов.
Словесное описание алгоритма:
определим количество заполненных строк во 2-м столбце, результат сохраним в переменной N;
запишем на лист в строку с номером N+2 заголовки столбцов новой таблицы;
определим номер строки, в которую будем выводить искомые значения NSTR=N+3;
присвоим счетчику I первоначальное значение 2;
рассмотрим содержимое ячейки в I-й строке и в 4-м столбце, если содержимое больше 20,то в строку с номером NSTR выведем фамилию, отдел и количество отработанных часов;
если просматриваемая строка не последняя, то увеличиваем значение счетчика на 1 и переходим к пункту 3, в противном случае заканчиваем работу.
Программное описание алгоритма.
Rem определяем количество заполненных ячеек на листе «Лист1» в ‘диапазоне D:D, результат сохраняем в переменной N.
N=Application.CountA(Sheets(“Лист1”).Range(“D:D”))
‘В строку с номером N+2 и столбцы первый, второй и третий запишем ‘заголовки столбцов новой таблицы
Cells(N+2,1)=”Фамилия”:Cells(N+2,2)=”Отдел”
Cells(N+2,3)=”Отработано часов”
‘Определим номер строки, в которую будем выводить искомые ‘значения.
NSTR=N+3
‘открываем цикл со счетчиком I, изменяющимся от 2 до N, шаг 1,
‘ счетчику I присваивается значение 2
For I=2 to N
‘если значение в I-й строке и 4-м столбце превышает 20 (отработано ‘часов). Номер строки ‘NSTR увеличиваем на единицу (следующая ‘строка).
If Cells(I,4)>20 Then
‘тогда в строку с номером NSTR и столбец с номером 1 выводим содержимое ‘I-й строки и 1-го столбца (фамилия).
Cells(NSTR,1)=Cells(I,1)
‘в строку с номером NSTR и столбец с номером 2 выводим содержимое I-й строки и 2-го ‘столбца (отдел)
Cells(NSTR,2)=Cells(I,2)
‘в строку с номером NSTR и столбец с номером 3 выводим содержимое I-й ‘строки и 4-го столбца (отработано часов)
Cells(NSTR,3)=Cells(I,4)
‘увеличиваем номер строки NSTR на единицу
NSTR=NSTR+1
‘закрываем условный оператор
End If
‘ закрываем цикл, к счетчику добавляется шаг (у нас 1), проверяется, ‘не превышено ли конечное значение счетчика, если не превышено,
‘к сумме добавляется значение очередного элемента.
Next
Дата добавления: 2014-12-02; просмотров: 1697;