Здравствуйте!
Я только начинаю программировать на VBA.
Пожалуйста, помогите, разобраться с кодом...
Имеется отчет на листе1 по данным с непериодичным посекундным шагом времени от 00:00:.. до 23:59:..
(за сутки).
Необходимо сделать выборку данных по часовому интервалу от 00-:-01ч до 23-:-24ч и выложить на лист2 в виде столбца данных по часам за период от 00-:-01ч до
23-:-24ч. Вид отчета приведен сокращенно ниже..
Я написал следующий код(пишу сокращенно):
.
.
Sum=0
Aver=0
N=5
' подсчет ячеек - конструктивно беру с 0:00:03(на листе excel соотвествует выбранной ячейке)
J=4
.
.
For I= 0 to 23
v_point: Do While Cells(N,2) <> ""
VremStr = Cells(J+1, 4).Value ' время
DataStr = Cells(J+1, 5).Value 'данные
call vznach()
Sub vznach()
DlStr = Len(VremStr)
IF DlStr <>8 Then
TimeZone =Left(VremStr,1) Else
TimeZone=Left(VremStr,2)
TimeC =Val(TimeZone)
End If
'Делаю в подпрограмме числовую величину времени для работы с циклом по выборке значений от времени
J=J+1
N=N+1
IF TimeC =I and DateStr <> "" Then
'При истинном условии здесь суммирую и считаю среднеарифметическое значение данных за временной период 00ч-:-01ч ...
'Понимаю что нужен еще один цикл для расчета остальных значений от 01ч-:-02ч до 23ч-:-24ч,но не знаю как правильно его реализовать с переносом на данных другой лист в виде таблицы: 00-:-01 данные
' 01-:-02 данные
' . . . . .
' 23-:-24 данные
Sum =Sum + DateStr
Aver=Aver + 1
Sredarifm = Sum / Aver
GoTo v_point
Else Next I
Loop
-----------
Вид Отчета
-----------------------------------------
N дата время данные
-----------------------------------------
1 03.07.2008 23:59:53 2440,072
2 04.07.2008 0:00:03 2440,072
3 04.07.2008 0:00:13 2440,072
4 04.07.2008 0:00:24 2440,072
5 04.07.2008 0:00:54 2440,072
6 04.07.2008 0:01:04 2440,072
7 04.07.2008 0:01:24 2440,072
8 04.07.2008 0:01:44 2440,072
9 04.07.2008 0:03:35 2440,072
10 04.07.2008 0:05:05 2440,072
11 04.07.2008 0:05:25 2440,072
. . . .
. . . .
105 04.07.2008 0:58:44 2443,9
106 04.07.2008 0:59:24 2443,9
107 04.07.2008 1:01:54 2443,9
108 04.07.2008 1:02:35 2443,9
109 04.07.2008 1:03:05 2443,9
. . . .
. . . .
. . . .
2277 04.07.2008 23:54:11 2413,274
2278 04.07.2008 23:54:21 2413,274
2279 04.07.2008 23:56:12 2413,274
2280 04.07.2008 23:57:02 2417,102
2281 04.07.2008 23:57:12 2413,274
2282 04.07.2008 23:57:22 2417,102
2283 04.07.2008 23:58:32 2417,102
2284 04.07.2008 23:58:52 2417,102
2285 04.07.2008 23:59:12 2413,274
2286 05.07.2008 0:00:03 2413,274
-------------------------------------------
Прошу подскажите, люди добрые, как правильно дописать код либо другую реализацию кода.
Наверняка это решается как-то проще, но нехватает пока знаний, а времени совсем мало..
Буду очень благодарен за помощь.Спасибо.
---
С уважением,
Вадим Соколов
Ответить
|