Я пытаюсь подсчитать количество случаев события как для дней недели, так и для часов дня (для графического отображения отдельно) с помощью VBA. Отметка даты/времени имеет следующий формат: «28.02.2014 20:32».
Пример:
AppID = 14329
DateCreated = 28.02.14 20:55
День = Пятница
Час = 20:55
Сейчас я копирую данные в новый столбец и устанавливаю формат даты «дддд», чтобы он отображался как «воскресенье» и т. д. Оттуда я выполняю автофильтрацию для каждого дня недели и подсчитываю полученные видимые клетки. Это работает с этим кодом:
With Range("C2:C" & LR)
.AutoFilter
.AutoFilter Field:=3, Criteria1:="Sunday"
cCnt = ActiveSheet.AutoFilter.Range.Columns(3) _
.SpecialCells(xlCellTypeVisible).Cells.Count
For Each cell In Range("C2:C" & cCnt)
Sun = Sun + 1
Next
.AutoFilter Field:=3, Criteria1:="Monday"
cCnt = ActiveSheet.AutoFilter.Range.Columns(3) _
.SpecialCells(xlCellTypeVisible).Cells.Count
For Each cell In Range("C2:C" & cCnt)
Mon = Mon + 1
Next
...так далее.
Однако моя проблема заключается в подсчете событий по часам. Я пытаюсь сделать это аналогичным образом, копируя дату/время в новый столбец и устанавливая формат «ч: мм; @» и выполняя автофильтрацию по часам с помощью этого кода:
With Range("D2:D" & LR)
.AutoFilter
.AutoFilter Field:=4, Criteria1:="10:??"
cCnt = ActiveSheet.AutoFilter.Range.Columns(4) _
.SpecialCells(xlCellTypeVisible).Cells.Count
For Each cell In Range("D2:D" & cCnt)
time(10) = time(10) + 1
Next
...так далее.
Это не работает, и я не могу понять, почему. Я попытался изменить критерии1 на другой синтаксис, добавив второй параметр критериев, и я в тупике, почему этот метод будет работать для первого обхода, но не для второго, когда оба столбца получены из одних и тех же исходных данных. Я также попытался изменить данные на другой формат времени (просто «чч» и т. д.).
10:??
на10:*
- person Automate This   schedule 12.03.201410*
. Результаты немного другие, но все же не правильные, к сожалению. - person user3220810   schedule 12.03.2014