Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Заполнить строки временем с шагом - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заполнить строки временем с шагом (Макросы/Sub)
Заполнить строки временем с шагом
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]


О_о ...и так можно было?

Сообщение отредактировал 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
Дата добавления - 08.07.2016 в 14:20
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заполнить строки временем с шагом (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!