как определить, что выбранная дата - последнее число месяца?

Программирование на Visual Basic for Applications
starkee
Новичок
Новичок
Аватара пользователя
 
Сообщения: 25
Зарегистрирован: 13.11.2007 (Вт) 14:56
Откуда: Ростов-на-Дону

как определить, что выбранная дата - последнее число месяца?

Сообщение starkee » 01.02.2008 (Пт) 11:34

Можно ли используя свойства Calendarя определить, что выбранная дата - последняя в этом месяце? Вроде нету у него таких свойств...

Я сейчас делаю так:
Код: Выделить всё
mesyac = cldMy.Month
cldMy.NextDay
mesyac_temp = cldMy.Month

If mesyac <> mesyac_temp Then MsgBox "конец месяца"

есть ли другой... более умный способ?

Pavel55
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 27.10.2006 (Пт) 20:11

Сообщение Pavel55 » 01.02.2008 (Пт) 17:12

А если так (без календаря, если понравится, то думаю подцепить дату с календаря сами сможете)

Код: Выделить всё
Sub Макрос1()
Dim iDate As Date
    iDate = #1/31/2008#  '31 Января 2008 г.
    If Month(DateAdd("d", 1, iDate)) <> Month(iDate) Then
        MsgBox "Конец месяца!"
    Else
        MsgBox "Ещё не конец!"
    End If
End Sub

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Сообщение KL » 01.02.2008 (Пт) 20:09

Код: Выделить всё
Sub test()
    MsgBox DateSerial(Year(Date), Month(Date) + 1, 0)
End Sub
Привет,
KL

starkee
Новичок
Новичок
Аватара пользователя
 
Сообщения: 25
Зарегистрирован: 13.11.2007 (Вт) 14:56
Откуда: Ростов-на-Дону

Сообщение starkee » 06.02.2008 (Ср) 9:48

KL писал(а):
Код: Выделить всё
Sub test()
    MsgBox DateSerial(Year(Date), Month(Date) + 1, 0)
End Sub


Спасибо! Очень помог!

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 07.02.2008 (Чт) 11:18

То-есть ответом на вопрос будет примерно следующее:

Код: Выделить всё
dim A1 as Date, A2 as Date

A1 = Date
A2 = DateSerial(Year(Date), Month(Date) + 1, 0)

if a1 = a2 then msgbox "Сегодня последний день месяца!"
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 27.02.2008 (Ср) 19:42

вот мой вариант:
Код: Выделить всё
If Month(CDate(mydate)) <> Month(CDate(mydate) + 1) Then
         MsgBox mydate & " - последний день месяца"
End If
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D


Вернуться в VBA

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

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

    TopList