Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2010, 11:56   #1
kaa1977
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 39
По умолчанию VBA Как задать формат даты и времени

Есть две переменных

sDate = "2010-04-01"
sTimeBegin = "00:00:00"

я их "склеиваю"

sTBegin = ""&sDate&" "&sTimeBegin


после этого делаю коррекцию времени

sTBegin = DateAdd("h", -4, sTBegin)

и результат у меня становится (почему-то??):
3/31/2010 8:00:00 PM

а надо
2010-03-31 20:00:00


как подправить формат??



СпасиБо
kaa1977 вне форума Ответить с цитированием
Старый 02.04.2010, 12:10   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Строку кода
Код:
sTBegin = DateAdd("h", -4, sTBegin)
замените на
Код:
sTBegin = Format(DateAdd("h", -4, sTBegin), "YYYY-MM-DD hh:mm:ss")
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 02.04.2010, 12:11   #3
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

вообще в курсе как ексель работает со временем? если нет - почитайте, очень познавательно

Код:
Sub pp()
Dim sdate As Date
Dim sTimeBegin As Date
Dim sTBegin As Date
sdate = "2010-04-01"
sTimeBegin = "00:00:00"
sTBegin = sdate + sTimeBegin
sTBegin = DateAdd("h", -4, sTBegin)
End Sub
Dophin вне форума Ответить с цитированием
Старый 02.04.2010, 12:15   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

To Dophin:
В Вашем случае, конечно, все хорошо. А если у автора темы переменные sDate и sTimeBegin имеются в исходном виде в текстовом формате? Вариант c Format(...) подходит.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 02.04.2010, 12:19   #5
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

я про Format ничего и не говорю, а вот контакенация в таком виде - не есть хорошо,
Код:
Sub pp()
Dim sdate As String
Dim sTimeBegin As String
Dim sTBegin As String
sdate = "2010-04-01"
sTimeBegin = "00:00:00"
sTBegin = CDate(sdate) + CDate(sTimeBegin)
sTBegin = DateAdd("h", -4, sTBegin)
End Sub
Dophin вне форума Ответить с цитированием
Старый 02.04.2010, 12:19   #6
kaa1977
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 39
По умолчанию

Да, именно в текстовом!


честно признаюсь, как работает Excel со временем - не знаю!
а где можно почитать?
kaa1977 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматизация заполнения даты и зависимость ячейки времени к ячейке даты. Каравай Microsoft Office Excel 14 11.03.2010 18:11
Как изменить в программе формат отображения даты и времени Alex_C Общие вопросы Delphi 2 13.09.2008 23:39
Задать формат, числу в VBA valerij Microsoft Office Excel 3 04.06.2008 10:58
Как установить формат даты на всю книгу ? SD_KOROLEV Microsoft Office Excel 3 02.03.2008 20:14
Как изменить формат отбражаемой даты? Vindigo Помощь студентам 1 27.01.2008 22:25