Элементарный кажется вопрос, но упорно не хочет реализовываться. необходимо из формы textbox, которая отображает текущее время, вывести отдельно в ячейку на лист часы, а в другую минуты. Написал такой код, но в ячейки пишутся двойные нули : [vba]
Код
Private Sub UserForm_Initialize() times = Format(Now, "hh.nn") End Sub Private Sub zapis1_Click() With Sheets("Статистика") iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 ... .Cells(iLastRow, 10) = Hour(times) .Cells(iLastRow, 11) = Minute(times) ... End With End Sub
[/vba]
Элементарный кажется вопрос, но упорно не хочет реализовываться. необходимо из формы textbox, которая отображает текущее время, вывести отдельно в ячейку на лист часы, а в другую минуты. Написал такой код, но в ячейки пишутся двойные нули : [vba]
Код
Private Sub UserForm_Initialize() times = Format(Now, "hh.nn") End Sub Private Sub zapis1_Click() With Sheets("Статистика") iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 ... .Cells(iLastRow, 10) = Hour(times) .Cells(iLastRow, 11) = Minute(times) ... End With End Sub
Первый кусок не нужен, тем более, что 1. hh.mm 2. Вы из даты-времени делаете кусок текста, а потом пытаетесь из этого куска вытащить время 3. переменная times не глобальная и не переносится в другой макрос "zapis1_Click" Просто напишите [vba]
Код
.Cells(iLastRow, 10) = Hour(Now)
[/vba]Или[vba]
Код
Hour(Time)
[/vba] Или, если нужно именно время запуска формы, а не время нажатия на кнопку "Добавить запись", то так [vba]
Код
Dim times
Private Sub UserForm_Initialize() times = Now End Sub
Private Sub zapis1_Click() With Sheets("Статистика") iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 '... .Cells(iLastRow, 10) = Hour(times) .Cells(iLastRow, 11) = Minute(times) '... End With End Sub
[/vba]
*Добавлено Поправил, сначала неверно написал
Первый кусок не нужен, тем более, что 1. hh.mm 2. Вы из даты-времени делаете кусок текста, а потом пытаетесь из этого куска вытащить время 3. переменная times не глобальная и не переносится в другой макрос "zapis1_Click" Просто напишите [vba]
Код
.Cells(iLastRow, 10) = Hour(Now)
[/vba]Или[vba]
Код
Hour(Time)
[/vba] Или, если нужно именно время запуска формы, а не время нажатия на кнопку "Добавить запись", то так [vba]
Код
Dim times
Private Sub UserForm_Initialize() times = Now End Sub
Private Sub zapis1_Click() With Sheets("Статистика") iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 '... .Cells(iLastRow, 10) = Hour(times) .Cells(iLastRow, 11) = Minute(times) '... End With End Sub
[/vba]
*Добавлено Поправил, сначала неверно написал_Boroda_
Во многих местах указано, что mm - это месяц, а nn - минуты. Но это не принципиально, могу поиграться.
Цитата
2. Вы из даты-времени делаете кусок текста, а потом пытаетесь из этого куска вытащить время
[vba]
Код
.Cells(iLastRow, 11) = Minute(TimeValue(times))
[/vba]тоже не помогает
Цитата
3. переменная times не глобальная и не переносится в другой макрос Просто напишите
Не могу, тк мне необходимо подвязаться под SpinButton2 ещё. Этот момент тоже никак не хочет работать, несмотря на то, что для даты используется хороший код [vba]
Код
Private Sub SpinButton1_SpinUp(): Data1 = Format(CDate(Data1) + 1, "DD.MM.YYYY"): End Sub
[/vba]
Цитата
Первый кусок не нужен, тем более, что 1. hh.mm
Во многих местах указано, что mm - это месяц, а nn - минуты. Но это не принципиально, могу поиграться.
Цитата
2. Вы из даты-времени делаете кусок текста, а потом пытаетесь из этого куска вытащить время
[vba]
Код
.Cells(iLastRow, 11) = Minute(TimeValue(times))
[/vba]тоже не помогает
Цитата
3. переменная times не глобальная и не переносится в другой макрос Просто напишите
Не могу, тк мне необходимо подвязаться под SpinButton2 ещё. Этот момент тоже никак не хочет работать, несмотря на то, что для даты используется хороший код [vba]
Код
Private Sub SpinButton1_SpinUp(): Data1 = Format(CDate(Data1) + 1, "DD.MM.YYYY"): End Sub
необходимо из формы textbox, которая отображает текущее время, вывести отдельно в ячейку на лист часы, а в другую минуты.
В форме есть textbox, который и называется times. В нём изначально отображалось время, к нему еще подразумевался SpinButton. Это время и должно идти было в ячейку. P.S. Сам файл прилагается для наглядности в пером посте.
необходимо из формы textbox, которая отображает текущее время, вывести отдельно в ячейку на лист часы, а в другую минуты.
В форме есть textbox, который и называется times. В нём изначально отображалось время, к нему еще подразумевался SpinButton. Это время и должно идти было в ячейку. P.S. Сам файл прилагается для наглядности в пером посте.Паштет
Private Sub SpinButton2_SpinDown(): times = Format(CDate(times) - 1, "hh:mm"): End Sub Private Sub SpinButton2_SpinUp(): times = Format(CDate(times) + 1, "hh:mm"): End Sub
[/vba]А здесь что не так?
Как я понял все проще можно было: [vba]
Код
times = Format(Now, "hh[u]:[/u]mm")
[/vba] И тогда не нужен Replace.
[vba]
Код
Private Sub SpinButton2_SpinDown(): times = Format(CDate(times) - 1, "hh:mm"): End Sub Private Sub SpinButton2_SpinUp(): times = Format(CDate(times) + 1, "hh:mm"): End Sub