lopuxi
Дата: Пятница, 08.07.2016, 10:31 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 142
Репутация:
0
±
Замечаний:
0% ±
Excel 2007, 2013
Добрый день. Помогите пожалуйста разобраться с таймингом в VBA Excel Мне нужно сделать заполнение строк временем ЧЧ:ММ-ЧЧ:ММ 05:00-05:30 06:00-06:30 07:00-07:30 и т.д. 23:00-23:30 00:00-00:30 01:00-00:30 Если не сложно, показать хотя бы примерчик того, как вычленить из формата Date время и после время со временем или минуты с минутами, час с часом. В общем то что я написал, не отражает всего того чего хотел я... работает только с заданной 30 мин переменной... [vba]Код
Private Sub CommandButton1_Click() iHour = 5 TimeStep = 30 ' Ïåðåìåííàÿ êîòîðóþ çàäàåì For i = 1 To 48 iMin = iMin + TimeStep - 30 If iMin >= 60 Then iMin = iMin - iMin iHour = iHour + 1 End If StartTime = TimeValue(iHour & ":" & iMin & ":00") TimeHour1 = Format(Hour(StartTime), "00") TimeMin1 = Format(Minute(StartTime), "00") iMin = iMin + TimeStep If iMin >= 60 Then iMin = iMin - iMin iHour = iHour + 1 End If If iHour = 24 Then MsgBox iHour & " = " & 24 iHour = 0 End If StartTime = TimeValue(iHour & ":" & iMin & ":00") TimeHour2 = Format(Hour(StartTime), "00") TimeMin2 = Format(Minute(StartTime), "00") MsgBox TimeHour1 & ":" & TimeMin1 & "-" & TimeHour2 & ":" & CVar(TimeMin2) & " - " & i ActiveSheet.Cells(i + 12, 1).Select ActiveSheet.Cells(i + 12, 1).Value = TimeHour1 & ":" & TimeMin1 & "-" & TimeHour2 & ":" & TimeMin2 Next End Sub
[/vba]
Добрый день. Помогите пожалуйста разобраться с таймингом в VBA Excel Мне нужно сделать заполнение строк временем ЧЧ:ММ-ЧЧ:ММ 05:00-05:30 06:00-06:30 07:00-07:30 и т.д. 23:00-23:30 00:00-00:30 01:00-00:30 Если не сложно, показать хотя бы примерчик того, как вычленить из формата Date время и после время со временем или минуты с минутами, час с часом. В общем то что я написал, не отражает всего того чего хотел я... работает только с заданной 30 мин переменной... [vba]Код
Private Sub CommandButton1_Click() iHour = 5 TimeStep = 30 ' Ïåðåìåííàÿ êîòîðóþ çàäàåì For i = 1 To 48 iMin = iMin + TimeStep - 30 If iMin >= 60 Then iMin = iMin - iMin iHour = iHour + 1 End If StartTime = TimeValue(iHour & ":" & iMin & ":00") TimeHour1 = Format(Hour(StartTime), "00") TimeMin1 = Format(Minute(StartTime), "00") iMin = iMin + TimeStep If iMin >= 60 Then iMin = iMin - iMin iHour = iHour + 1 End If If iHour = 24 Then MsgBox iHour & " = " & 24 iHour = 0 End If StartTime = TimeValue(iHour & ":" & iMin & ":00") TimeHour2 = Format(Hour(StartTime), "00") TimeMin2 = Format(Minute(StartTime), "00") MsgBox TimeHour1 & ":" & TimeMin1 & "-" & TimeHour2 & ":" & CVar(TimeMin2) & " - " & i ActiveSheet.Cells(i + 12, 1).Select ActiveSheet.Cells(i + 12, 1).Value = TimeHour1 & ":" & TimeMin1 & "-" & TimeHour2 & ":" & TimeMin2 Next End Sub
[/vba] lopuxi
О_о ...и так можно было?
Сообщение отредактировал lopuxi - Пятница, 08.07.2016, 11:10
Ответить
Сообщение Добрый день. Помогите пожалуйста разобраться с таймингом в VBA Excel Мне нужно сделать заполнение строк временем ЧЧ:ММ-ЧЧ:ММ 05:00-05:30 06:00-06:30 07:00-07:30 и т.д. 23:00-23:30 00:00-00:30 01:00-00:30 Если не сложно, показать хотя бы примерчик того, как вычленить из формата Date время и после время со временем или минуты с минутами, час с часом. В общем то что я написал, не отражает всего того чего хотел я... работает только с заданной 30 мин переменной... [vba]Код
Private Sub CommandButton1_Click() iHour = 5 TimeStep = 30 ' Ïåðåìåííàÿ êîòîðóþ çàäàåì For i = 1 To 48 iMin = iMin + TimeStep - 30 If iMin >= 60 Then iMin = iMin - iMin iHour = iHour + 1 End If StartTime = TimeValue(iHour & ":" & iMin & ":00") TimeHour1 = Format(Hour(StartTime), "00") TimeMin1 = Format(Minute(StartTime), "00") iMin = iMin + TimeStep If iMin >= 60 Then iMin = iMin - iMin iHour = iHour + 1 End If If iHour = 24 Then MsgBox iHour & " = " & 24 iHour = 0 End If StartTime = TimeValue(iHour & ":" & iMin & ":00") TimeHour2 = Format(Hour(StartTime), "00") TimeMin2 = Format(Minute(StartTime), "00") MsgBox TimeHour1 & ":" & TimeMin1 & "-" & TimeHour2 & ":" & CVar(TimeMin2) & " - " & i ActiveSheet.Cells(i + 12, 1).Select ActiveSheet.Cells(i + 12, 1).Value = TimeHour1 & ":" & TimeMin1 & "-" & TimeHour2 & ":" & TimeMin2 Next End Sub
[/vba] Автор - lopuxi Дата добавления - 08.07.2016 в 10:31
devilkurs
Дата: Пятница, 08.07.2016, 14:20 |
Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 167
Репутация:
43
±
Замечаний:
0% ±
Excel 2007, 2010
Я лично ничего не понял, но есть функция DateAdd() — возможность добавить к дате указанное количество лет, кварталов, месяцев и так далее — вплоть до секунд.Здесь можно посмотреть подробнее применимо к вам [vba]Код
Sub devilkurs() Dim Start, i%, Time1, Time2 Start = "01.01.2000 00:00:00" For i = 1 To 3 Time1 = DateAdd("n", 30 * (i - 1), Start) Time2 = DateAdd("n", 30 * i, Start) MsgBox Format(Time1, "hh:mm") & " - " & Format(Time2, "hh:mm") Next End Sub
[/vba]
Я лично ничего не понял, но есть функция DateAdd() — возможность добавить к дате указанное количество лет, кварталов, месяцев и так далее — вплоть до секунд.Здесь можно посмотреть подробнее применимо к вам [vba]Код
Sub devilkurs() Dim Start, i%, Time1, Time2 Start = "01.01.2000 00:00:00" For i = 1 To 3 Time1 = DateAdd("n", 30 * (i - 1), Start) Time2 = DateAdd("n", 30 * i, Start) MsgBox Format(Time1, "hh:mm") & " - " & Format(Time2, "hh:mm") Next End Sub
[/vba] devilkurs
Ответить
Сообщение Я лично ничего не понял, но есть функция DateAdd() — возможность добавить к дате указанное количество лет, кварталов, месяцев и так далее — вплоть до секунд.Здесь можно посмотреть подробнее применимо к вам [vba]Код
Sub devilkurs() Dim Start, i%, Time1, Time2 Start = "01.01.2000 00:00:00" For i = 1 To 3 Time1 = DateAdd("n", 30 * (i - 1), Start) Time2 = DateAdd("n", 30 * i, Start) MsgBox Format(Time1, "hh:mm") & " - " & Format(Time2, "hh:mm") Next End Sub
[/vba] Автор - devilkurs Дата добавления - 08.07.2016 в 14:20