Формат для отображения времени?

Программирование на Visual Basic for Applications
Терминатор
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 164
Зарегистрирован: 06.01.2005 (Чт) 12:57
Откуда: Москва

Формат для отображения времени?

Сообщение Терминатор » 10.04.2006 (Пн) 18:37

На Листе ячейка, в ячейке значение, в формате времени
[h]:mm:cc
Какой необходимо пременить формат, для корректного отображения времени, находящегося в этой ячейке, с помошью MsgBox?

P.S.
В ячейке отображается 25:30:00
Hasta la vista, baby!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 10.04.2006 (Пн) 20:59

Без квадратных скобок напиши.
Квадратные скобки означают, что значение не будет обнуляться, переходя на следующие разряды.
Lasciate ogni speranza, voi ch'entrate.

Терминатор
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 164
Зарегистрирован: 06.01.2005 (Чт) 12:57
Откуда: Москва

Сообщение Терминатор » 11.04.2006 (Вт) 13:11

alibek писал(а):Без квадратных скобок напиши.
:arrow: Это как раз вызовет ошибку.

Тогда значение 25:30 (т.е. 25 часов 30 минут) примет неверное значение → 1:30
Значение 25 часов 30 минут возникает от суммирования времени.
Формат [h]:mm рекомендует Джон Уокенбах при использовании отображения времени более 24 часов как единственно верный. (для Excel). К сажелению он умалчивает как отображать подобный формат в тексбоксах или в MsgBox-ах. А хотелось бы знать. :roll:
Hasta la vista, baby!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.04.2006 (Вт) 13:18

Терминатор писал(а):Тогда значение 25:30 (т.е. 25 часов 30 минут) примет неверное значение → 1:30

Не так. Значение 25:30 будет соответствовать 31 декабря 1899 года, 01:30.
Если ты хочешь формат [h]:mm использовать в коде VB, то не получится, смотри тут.
Lasciate ogni speranza, voi ch'entrate.

$€rg
Обычный пользователь
Обычный пользователь
 
Сообщения: 99
Зарегистрирован: 11.01.2006 (Ср) 10:15
Откуда: Санкт-Петербург

Сообщение $€rg » 11.04.2006 (Вт) 14:05

поизвращался от нечего делать
Код: Выделить всё
Sub s2()
Dim i As Variant, i2 As Variant
Dim j As Integer
Dim k As String
i = Range("C27").Value
i2 = CStr(i)
For j = 1 To Len(i2)
k = Left(i2, j)
If Right(k, 1) = "," Then Exit For
Next
k = CInt(k)
i = Format(i, "hh:mm:ss")
i = CStr(i)
j = 24 * k + CInt(Left(i, 2))
MsgBox CStr(j) & Mid(i, 3)
End Sub
процесс печатания программного кода укрепляет моральные устои С. Каммингс VBA4Dummies
:study:

Терминатор
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 164
Зарегистрирован: 06.01.2005 (Чт) 12:57
Откуда: Москва

Сообщение Терминатор » 11.04.2006 (Вт) 15:34

$€rg писал(а):поизвращался от нечего делать

О!
Спасибо, теперь ясно в какую сторону двигаться.
Hasta la vista, baby!

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 12.04.2006 (Ср) 8:41

MsgBox ActiveCell.Text


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 50

    TopList