предыдущее

Есть общий отчет в котором все проходы, всех людей, за сутки. Макрос должен сделать как бы из общего суточного списка 24 маленьких отчетика и только в каждом маленьком отчете удалить повторяющиеся фамилии, а потом когда из этих маленьких отчетов будет 1 большой, то из него не надо уже будет удалять повторные фамилии.


Исходя из поставленного вопроса, правильнее будет идти по такому алгоритму:

Выделяем ячейку, где хранится время, допустим столбец I, где первая строка – наименование, следовательно, необходимо выделить I2 - Range("I2").Activate
После этого просматриваем все значения данного столбца в цикле в поисках изменения времени и в этот момент вставляем пустую строку, таким образом, разобьем наш отчет на 24 маленьких отчетика, ну а дальше работаем с маленькими отчетиками по известному Вам алгоритму….

Разбивку можно попробовать провести так: (код не проверен, отладка за вами)

Sub time()
Range("I2").Activate
время = 0
'Определяем количество строк
ActiveCell.CurrentRegion.Select
кол_строк = Selektion.Rows.Count
кол_оставшихся_строк = кол_строк

'разбивка на временные интервалы
1 x = ActiveCell.Value
xx = Right(x, 8)
yy = Right(x, 5)
ч = Left(xx, 2)
час = Int(ч)
м = Left(yy, 2)
мин = Int(м)

If час = время Then
If кол_оставшихся_строк > 0 Then
ActiveCell.Cells(2).Activate
кол_оставшихся_строк = кол_оставшихся_строк - 1
GoTo 1
Else
GoTo vi
End If
Else
время = время + 1
вставить_пустую_строку 'ссылка на подпрограмму вставляющую пустую строку
ActiveCell.Cells(2).Activate
If час < 23 And мин < 59 Then GoTo 1

vi: End Sub

 

следущее

показать другие письма

Рейтинг@Mail.ru главная программы задачи карта Copyright © СОМИТ, А.Козлов, 2005 г