Страницы: 1
RSS
VBA. Как в VBA дату сравнить с датой?
 
Всем ДД.  
Маленький кусочек кода  
a = Range("B4")  
If a < "15.07.2005" Then  
 
в "В4" число в формате даты 12.07.2005  
Как это правильно записать?  
и, заодно, какой тип задать переменной А?  
Dim A As ?  
Спасибо.
 
Здравствуй, Миш.  
dim a as date  
a = Range("B4")  
If a < CDate("15.07.2005") Then ...
Я сам - дурнее всякого примера! ...
 
ДВ! Тоже экономлю :-)  
Dim a as Date, b as Date  
А по первой части не очень понял - с датами обычная работа при сравнении (это ведь числа):  
If a < b Then
 
Немного не точно написал.    
a = Range("B4:B6")  
as date выдает ошибку... только as variant ?
 
Range("B4:B6") - это уже диапазон :-) Что за данные там? Может файл?
 
{quote}{login=Михаил}{date=28.02.2011 07:44}{thema=}{post}Немного не точно написал.    
a = Range("B4:B6")  
as date выдает ошибку... только as variant ?{/post}{/quote}  
Если указываешь диапазон,  то а будет массив значений. тогда циклом cdate(a(i)) сравнивай.
Я сам - дурнее всякого примера! ...
 
В диапазоне только даты - (сам сейчас заполняю, автоподстановкой).  
Юр, ну можно, конечно, написать в коде    
If a < 46000 Then (например), но хочется, что б и наглядность была  
:)
 
Вернее  
a(i,1)
Я сам - дурнее всякого примера! ...
 
Про массив и цикл я понимаю. Просто не получалось сравнить  
А(2) > "01.03.2000" (к примеру)
 
ну да, А(5,1)  :-)
 
{quote}{login=Михаил}{date=28.02.2011 07:51}{thema=}{post}Юр, ну можно, конечно, написать в коде    
If a < 46000 Then (например), но хочется, что б и наглядность была  
:){/post}{/quote}  
Про числа я совсем с другой стороны :-)  
В А1 - Сегодня  
If Range("A1") < CDate("01.03.2011") Then MsgBox "Меньше"
 
Юра, Васмк представляет даты, как #12.07.2005#(можно увидеть в окне переменных). Вопрос, а как такой же формат использовать в коде? Не сталкивался? Собственно, вопрос не только к Юре. Если у кого мысли(или варианты) есть - давайте обсудим.
Я сам - дурнее всякого примера! ...
 
Флуд, конечно, глянул на три первые поста темы и мелькнуло - старперы собрались, доминошники(сам никогда ни в домино, ни в другие игры... мне интересны головоломки):-)  
С уважением, Сергей.
Я сам - дурнее всякого примера! ...
 
Привет, Сергей.  
Опередил меня, я точно такой код написал :)  
Я по поводу #12.07.2005#.  
 
Dim a As Date, b As Date  
a = Range("B4")  
b = CDate("15.07.2005")  
If a < b Then MsgBox 1  
 
Если так написать, то в Locals обе переменные одинаковы.
 
{quote}{login=Hugo}{date=28.02.2011 08:32}{thema=}{post}Привет, Сергей.  
Опередил меня, я точно такой код написал :)...  
Я по поводу #12.07.2005#.  
{/post}{/quote}  
А кто сомневался:-)... А дальше? Как такой формат #12.07.2005# втюхать в код?
Я сам - дурнее всякого примера! ...
 
Не знаю... Я помню ту тему - тоже потыкался, так ничего не получилось...  
А здесь CDate("15.07.2005")=#15.07.2005#
 
Да, интересно... Вот, например, время я ввожу так:  
Public Const TimeStart = #12:00:00 AM#  
Т.е., решётка имеет место быть :-)
 
{quote}{login=Юрий М}{date=28.02.2011 09:08}{thema=}{post}Да, интересно... Вот, например, время я ввожу так:  
Public Const TimeStart = #12:00:00 AM#  
Т.е., решётка имеет место быть :-){/post}{/quote}  
Ребят, да не парьтесь. Нет, так нет. Мы с вами легко решаем такие феньки без диезов. Т.е. дедушка Эксель прелагает  нам множество других путей.:-) Очень рад видеть вас на форуме!
Я сам - дурнее всякого примера! ...
 
Может быть так  
Dim d As Date  
Dim s As Single  
s=#1/3/2011#  
d=s
 
Офигеть. Дело в разделителях. Какого же он в переменных показывает... Ну да, Locals... Kuzmich, спасибо! Короче, или никак, или с буржуйскими разделителями:-)
Я сам - дурнее всякого примера! ...
 
{quote}{login=KukLP}{date=28.02.2011 09:15}{thema=Re: }{post}...дедушка Эксель прелагает  нам множество других путей...{/post}{/quote}Какой-же он дедушка, если ему только 26-й годик?
 
Серег, все познается... А если сложить все года разработчиков, на него затраченные? Я помню еще Quattro, QuattroPro, Supercalc - где они сейчас? Так что Экс считаю уже умуденным сединами. И очень уважаю(можно даже сказать люблю). Думаю(зная тебя) и ты со мной спорить не станешь:-)
Я сам - дурнее всякого примера! ...
 
Нет.  
Вопрос риторический был :-)
 
ну и не забываем что формат всегда mm/dd/yyyy  
 
:-)
Спасибо
Страницы: 1
Читают тему
Наверх