Skip to content
This tutorial shows how to return the number of days in a specific month using an Excel formula or VBA
Example: Return number of days in a month
METHOD 1. Return number of days in a month using Excel formula
EXCEL
This formula uses a combination of Excel DAY and EOMONTH functions to calculate the number of days that are in a specific. The EOMONTH function, with the months criteria of 0, returns the last day for the month, represented as a date. Therefore in this example it would return a date of 31 March 2019. Then the DAY function is used to extract only the day from the selected date, which in this example would be the last day of the month. |
METHOD 1. Return number of days in a month using VBA
VBA
Sub Days_in_a_Month()
‘declare a variable
Dim ws As Worksheet
Set ws = Worksheets(«Analysis»)
‘return the number of days in a month
ws.Range(«D5») = Day(Application.WorksheetFunction.EoMonth(ws.Range(«B5»), 0))
End Sub
ADJUSTABLE PARAMETERS
Output Range: Select the output range by changing the cell reference («D5») in the VBA code.
Month: Select the date that represents the month for which you want to return the number of days that form part of that month by changing the cell reference («B5»), in the VBA code, or enter the date with the relevant month in cell («B5»).
Worksheet Selection: Select the worksheet which captures the date that represents the month for which you want to return the number of days that form part of that month by changing the Analysis worksheet name in the VBA code. You can also change the name of this object variable, by changing the name ‘ws’ in the VBA code.
Explanation about the formulas used to extract the number of days in a month
EXPLANATION
EXPLANATION
This tutorial shows how to return the number of days in a specific month through the use of an Excel formula or VBA.
Both the Excel formula and VBA methods make use of the DAY and EOMONTH functions to return the number of days in a specific month.
FORMULA
=DAY(EOMONTH(date,0))
ARGUMENTS
date: The date that represents the month of which you want to return the number of days.
Related Topic | Description | Related Topic and Description |
---|---|---|
Return previous month based on current month | How to return the previous month based on the current month using Excel and VBA methods | |
Return next month based on current month | How to return the next month based on the current month using Excel and VBA | |
Difference in months between two dates | How to calculate the difference in months between two dates using Excel and VBA methods | |
Difference in days between two dates | How to calculate the difference in days between two dates using Excel and VBA methods |
Related Functions | Description | Related Functions and Description |
---|---|---|
DAY Function | The Excel DAY function returns the day from a specified date |
There’s no need to remove 1st of next month from 1st of this month to get the number of days.
Day 0 in the DateSerial
function is the last day of the previous month, so this will work:
DaysInMonth = Day(DateSerial(dtTrickle_Year, dtTrickle_Month + 1, 0))
It’s leap-year sensitive to:
Day(DateSerial(2015, 2+ 1, 0))
returns 28.
Day(DateSerial(2016, 2+ 1, 0))
returns 29.
Looking further through your code I’ve made an attempt at coding what I think you’re trying to do.
I’ve had to add some test values and variable declarations to make it work. It removes one of your loops by using the FIND
method to go straight to the required cell.
Sub Test()
Dim DaysInMonth As Long
Dim DoM_Distro As Long
Dim dtTrickle_Year As Long
Dim dtTrickle_Month As Long
Dim dblLeadsValue As Double
Dim i As Long
Dim dtCurrentDay As Date
Dim rFound As Range
dtTrickle_Year = 2016
dtTrickle_Month = 2
dblLeadsValue = 10
'Determine DaysinMonth and assign DaysinMonth_Distro value
DaysInMonth = Day(DateSerial(dtTrickle_Year, dtTrickle_Month + 1, 0))
DoM_Distro = 1 / DaysInMonth
'Cycle through each day in the month.
For i = 1 To DaysInMonth
dtCurrentDay = DateSerial(dtTrickle_Year, dtTrickle_Month, i)
'Seach column 2 of the table to find the date value.
With Range("wsUploadTable").Columns(2)
'Find the value in the table.
Set rFound = .Find( _
What:=dtCurrentDay, _
After:=.Cells(1, 1), _
LookIn:=xlValues, _
LookAt:=xlWhole)
'Providing a value is found....
If Not rFound Is Nothing Then
'Place our result 10 columns to the right of the found cell.
rFound.Offset(, 10).Value = dblLeadsValue + DoM_Distro
End If
Set rFound = Nothing
End With
Next i
End Sub
103 / 1 / 0 Регистрация: 13.12.2009 Сообщений: 136 |
|
1 |
|
Определить количество дней для определенного месяца и определенного года17.06.2011, 00:59. Показов 40529. Ответов 18
Составить программу, которая по заданным году и номеру месяца m определяет количество дней в этом месяце.
0 |
all_angarsk 761 / 268 / 57 Регистрация: 13.12.2009 Сообщений: 1,067 |
||||
17.06.2011, 07:14 |
2 |
|||
Сообщение было отмечено как решение Решение
вариант
0 |
103 / 1 / 0 Регистрация: 13.12.2009 Сообщений: 136 |
|
17.06.2011, 11:54 [ТС] |
3 |
а как сделать с помощью оператора выбора???
0 |
761 / 268 / 57 Регистрация: 13.12.2009 Сообщений: 1,067 |
|
17.06.2011, 12:07 |
4 |
а как сделать с помощью оператора выбора??? что такое оператор выбора? я не понимаю….. Наверное на сегодня хватит. людей не понимаю
0 |
103 / 1 / 0 Регистрация: 13.12.2009 Сообщений: 136 |
|
17.06.2011, 12:48 [ТС] |
5 |
c помощью оператора case
0 |
5561 / 1367 / 150 Регистрация: 08.02.2009 Сообщений: 4,107 Записей в блоге: 30 |
|
17.06.2011, 13:01 |
6 |
Выбором хотите перебрать все годы и месяцы?! А ничё, что VB просто напичкан функциями для дат?
0 |
103 / 1 / 0 Регистрация: 13.12.2009 Сообщений: 136 |
|
17.06.2011, 13:14 [ТС] |
7 |
да вот не знаю как сделать.. помогите
0 |
Sasha_Smirnov 5561 / 1367 / 150 Регистрация: 08.02.2009 Сообщений: 4,107 Записей в блоге: 30 |
||||
17.06.2011, 13:30 |
8 |
|||
Сделай как я. Или проще.
Изображения
0 |
103 / 1 / 0 Регистрация: 13.12.2009 Сообщений: 136 |
|
17.06.2011, 13:40 [ТС] |
9 |
ой спасибо, хотя бы так=)) очень выручили=)) спасибо большущее=))
0 |
5561 / 1367 / 150 Регистрация: 08.02.2009 Сообщений: 4,107 Записей в блоге: 30 |
|
17.06.2011, 13:48 |
10 |
Увы, я ступил. Там ещё надо для февраля один случай: когда god Mod 100 = 0 (год кратен ста), но при этом не кратен 400. Например, 1900 (в феврале там 28).
0 |
Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||
17.06.2011, 13:52 |
11 |
|||
Сообщение было отмечено как решение Решениетри строччки кода, наподобии
0 |
Sasha_Smirnov 5561 / 1367 / 150 Регистрация: 08.02.2009 Сообщений: 4,107 Записей в блоге: 30 |
||||
18.06.2011, 12:21 |
12 |
|||
Теперь как по писаному, всё чётко. Ещё час угрохал☻ Изображения
1 |
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
18.06.2011, 15:41 |
13 |
чем мой вариант не устроил?
0 |
Sasha_Smirnov 5561 / 1367 / 150 Регистрация: 08.02.2009 Сообщений: 4,107 Записей в блоге: 30 |
||||
20.06.2011, 09:57 |
14 |
|||
Устроил бы, если б выдал ответ.
три строчки кода…
А остальные две строчки — Суб и Энд Суб!
0 |
Sasha_Smirnov 5561 / 1367 / 150 Регистрация: 08.02.2009 Сообщений: 4,107 Записей в блоге: 30 |
||||
25.06.2011, 05:22 |
15 |
|||
Ну, при желании, можно и в «три строчки»:
Изображения
0 |
5561 / 1367 / 150 Регистрация: 08.02.2009 Сообщений: 4,107 Записей в блоге: 30 |
|
10.02.2012, 23:45 |
16 |
Причём число дней (k) выдаётся вообще чисто арифметически, без использования функций даты!
1 |
diska 0 / 0 / 0 Регистрация: 09.06.2014 Сообщений: 17 |
||||
05.05.2012, 08:25 |
17 |
|||
Добрый день!
где, month_cb и year_cb — заполненные combobox’ы для месяца и года. Можно ввести еще пару cb и тем самым расширить границы определения кол-ва дней.
0 |
Ананаско 2 / 2 / 0 Регистрация: 23.11.2014 Сообщений: 60 |
||||||||
13.12.2014, 17:01 |
18 |
|||||||
Дополнить макрос операторами, которые в соответствии со значениями номеров месяца в столбце А заполняют столбец В количеством дней в этом месяце.
Cells(2, i + 2) = Day(Cells(1, i + 2)) вот здесь он просто выводит сегодняшнее число.. а как вывести количество дней в месяце в зависимости от номера месяца? Добавлено через 1 час 37 минут
А вот все)
0 |
cshyka 1 / 1 / 0 Регистрация: 21.10.2022 Сообщений: 1 |
||||
21.10.2022, 11:15 |
19 |
|||
1 |
Функции для работы с датой и временем в VBA Excel. Синтаксис, параметры, спецсимволы, примеры. Функции, возвращающие текущие дату и время по системному таймеру.
Функция Date
Date – это функция, которая возвращает значение текущей системной даты. Тип возвращаемого значения – Variant/Date.
Синтаксис
Пример
Sub PrimerDate() MsgBox «Сегодня: « & Date End Sub |
Функция DateAdd
DateAdd – это функция, которая возвращает результат прибавления к дате указанного интервала времени. Тип возвращаемого значения – Variant/Date.
Синтаксис
DateAdd(interval, number, date) |
Параметры
Параметр | Описание |
---|---|
interval | Обязательный параметр. Строковое выражение из спецсимволов, представляющее интервал времени, который требуется добавить. |
number | Обязательный параметр. Числовое выражение, задающее количество интервалов, которые необходимо добавить. Может быть как положительным (возвращается будущая дата), так и отрицательным (возвращается предыдущая дата). |
date | Обязательный параметр. Значение типа Variant/Date или литерал, представляющий дату, к которой должен быть добавлен интервал. |
Таблицу аргументов (значений) параметра interval
смотрите в параграфе «Приложение 1».
Примечание к таблице аргументов: три символа – y, d, w – указывают функции DateAdd
на один день, который необходимо прибавить к исходной дате number
раз.
Пример
Sub PrimerDateAdd() MsgBox «31.01.2021 + 1 месяц = « & DateAdd(«m», 1, «31.01.2021») ‘Результат: 28.02.2021 MsgBox «Сегодня + 3 года = « & DateAdd(«yyyy», 3, Date) MsgBox «Сегодня — 2 недели = « & DateAdd(«ww», —2, Date) MsgBox «10:22:14 + 10 минут = « & DateAdd(«n», 10, «10:22:14») ‘Результат: 10:32:14 End Sub |
Функция DateDiff
DateDiff – это функция, которая возвращает количество указанных интервалов времени между двумя датами. Тип возвращаемого значения – Variant/Long.
Синтаксис
DateDiff(interval, date1, date2, [firstdayofweek], [firstweekofyear]) |
Параметры
Параметр | Описание |
---|---|
interval | Обязательный параметр. Строковое выражение из спецсимволов, представляющее интервал времени, количество которых (интервалов) требуется вычислить между двумя датами. |
date1, date2 | Обязательные параметры. Значения типа Variant/Date , представляющие две даты, между которыми вычисляется количество указанных интервалов. |
firstdayofweek | Необязательный параметр. Константа, задающая первый день недели. По умолчанию – воскресенье. |
firstweekofyear | Необязательный параметр. Константа, задающая первую неделю года. По умолчанию – неделя, в которую входит 1 января. |
Таблицу аргументов (значений) параметра interval
смотрите в параграфе «Приложение 1».
Примечание к таблице аргументов: в отличие от функции DateAdd
, в функции DateDiff
спецсимвол "w"
, как и "ww"
, обозначает неделю. Но расчет осуществляется по разному. Подробнее об этом на сайте разработчиков.
Параметры firstdayofweek
и firstweekofyear
определяют правила расчета количества недель между датами.
Таблицы констант из коллекций firstdayofweek
и firstweekofyear
смотрите в параграфах «Приложение 2» и «Приложение 3».
Пример
Sub PrimerDateDiff() ‘Даже если между датами соседних лет разница 1 день, ‘DateDiff с интервалом «y» покажет разницу — 1 год MsgBox DateDiff(«y», «31.12.2020», «01.01.2021») ‘Результат: 1 год MsgBox DateDiff(«d», «31.12.2020», «01.01.2021») ‘Результат: 1 день MsgBox DateDiff(«n», «31.12.2020», «01.01.2021») ‘Результат: 1440 минут MsgBox «Полных лет с начала века = « & DateDiff(«y», «2000», Year(Now) — 1) End Sub |
Функция DatePart
DatePart – это функция, которая возвращает указанную часть заданной даты. Тип возвращаемого значения – Variant/Integer.
Есть предупреждение по использованию этой функции.
Синтаксис
DatePart(interval, date, [firstdayofweek], [firstweekofyear]) |
Параметры
Параметр | Описание |
---|---|
interval | Обязательный параметр. Строковое выражение из спецсимволов, представляющее часть даты, которую требуется извлечь. |
date | Обязательные параметры. Значение типа Variant/Date , представляющее дату, часть которой следует извлечь. |
firstdayofweek | Необязательный параметр. Константа, задающая первый день недели. По умолчанию – воскресенье. |
firstweekofyear | Необязательный параметр. Константа, задающая первую неделю года. По умолчанию – неделя, в которую входит 1 января. |
Таблицу аргументов (значений) параметра interval
смотрите в параграфе «Приложение 1». В третьей графе этой таблицы указаны интервалы значений, возвращаемых функцией DatePart
.
Таблицы констант из коллекций firstdayofweek
и firstweekofyear
смотрите в параграфах «Приложение 2» и «Приложение 3».
Пример
Sub PrimerDatePart() MsgBox DatePart(«y», «31.12.2020») ‘Результат: 366 MsgBox DatePart(«yyyy», CDate(43685)) ‘Результат: 2019 MsgBox DatePart(«n», CDate(43685.45345)) ‘Результат: 52 MsgBox «День недели по счету сегодня = « & DatePart(«w», Now, vbMonday) End Sub |
Функция DateSerial
DateSerial – это функция, которая возвращает значение даты для указанного года, месяца и дня. Тип возвращаемого значения – Variant/Date.
Синтаксис
DateSerial(year, month, day) |
Параметры
Параметр | Описание |
---|---|
year | Обязательный параметр типа Integer. Числовое выражение, возвращающее значение от 100 до 9999 включительно. |
month | Обязательный параметр типа Integer. Числовое выражение, возвращающее любое значение (в пределах Integer), а не только от 1 до 12.* |
day | Обязательный параметр типа Integer. Числовое выражение, возвращающее любое значение (в пределах Integer), а не только от 1 до 31.* |
* Функция DateSerial автоматически пересчитывает общее количество дней в полные месяцы и остаток, общее количество месяцев в полные годы и остаток (подробнее в примере).
Пример
Sub PrimerDateSerial() MsgBox DateSerial(2021, 2, 10) ‘Результат: 10.02.2020 MsgBox DateSerial(2020, 1, 400) ‘Результат: 03.02.2021 End Sub |
Разберем подробнее строку DateSerial(2020, 1, 400)
:
- 400 дней = 366 дней + 31 день + 3 дня;
- 366 дней = 1 год, так как по условию month:=1, значит февраль 2020 входит в расчет, а в нем – 29 дней;
- 31 день = 1 месяц, так как сначала заполняется январь (по условию month:=1);
- 3 дня – остаток.
В итоге получается:
DateSerial(2020+1, 1+1, 3) = DateSerial(2021, 2, 3)
Функция DateValue
DateValue – это функция, которая преобразует дату, указанную в виде строки, в значение типа Variant/Date (время игнорируется).
Синтаксис
Параметр date
– строковое выражение, представляющее дату с 1 января 100 года по 31 декабря 9999 года.
Пример
Sub PrimerDateValue() MsgBox DateValue(«8 марта 2021») ‘Результат: 08.03.2021 MsgBox DateValue(«17 мая 2021 0:59:15») ‘Результат: 17.05.2021 End Sub |
Функция DateValue игнорирует время, указанное в преобразуемой строке, но если время указано в некорректном виде (например, «10:60:60»), будет сгенерирована ошибка.
Функция Day
Day – это функция, которая возвращает день месяца в виде числа от 1 до 31 включительно. Тип возвращаемого значения – Variant/Integer.
Синтаксис
Параметр date
– любое числовое или строковое выражение, представляющее дату.
Пример
Sub PrimerDay() MsgBox Day(Now) End Sub |
Функция IsDate
IsDate – это функция, которая возвращает True, если выражение является датой или распознается как допустимое значение даты или времени. В остальных случаях возвращается значение False.
Синтаксис
Параметр expression
– это переменная, возвращающая дату или строковое выражение, распознаваемое как дата или время.
Значение, возвращаемое переменной expression, не должно выходить из диапазона допустимых дат: от 1 января 100 года до 31 декабря 9999 года (для Windows).
Пример
Sub PrimerIsDate() MsgBox IsDate(«18 апреля 2021») ‘Результат: True MsgBox IsDate(«31 февраля 2021») ‘Результат: False MsgBox IsDate(«4.10.20 11:12:54») ‘Результат: True End Sub |
Функция Hour
Hour – это функция, которая возвращает количество часов в виде числа от 0 до 23 включительно. Тип возвращаемого значения – Variant/Integer.
Синтаксис
Параметр time
– любое числовое или строковое выражение, представляющее время.
Пример
Sub PrimerHour() MsgBox Hour(Now) MsgBox Hour(«22:36:54») End Sub |
Функция Minute
Minute – это функция, которая возвращает количество минут в виде числа от 0 до 59 включительно. Тип возвращаемого значения – Variant/Integer.
Синтаксис
Параметр time
– любое числовое или строковое выражение, представляющее время.
Пример
Sub PrimerMinute() MsgBox Minute(Now) MsgBox Minute(«22:36:54») End Sub |
Функция Month
Month – это функция, которая возвращает день месяца в виде числа от 1 до 12 включительно. Тип возвращаемого значения – Variant/Integer.
Синтаксис
Параметр date
– любое числовое или строковое выражение, представляющее дату.
Пример
Sub PrimerMonth() MsgBox Month(Now) End Sub |
Функция MonthName
MonthName – это функция, которая возвращает название месяца в виде строки.
Синтаксис
MonthName(month, [abbreviate]) |
Параметры
Параметр | Описание |
---|---|
month | Обязательный параметр. Числовое обозначение месяца от 1 до 12 включительно. |
abbreviate | Необязательный параметр. Логическое значение: True – возвращается сокращенное название месяца, False (по умолчанию) – название месяца не сокращается. |
Пример
Sub PrimerMonthName() MsgBox MonthName(10) ‘Результат: Октябрь MsgBox MonthName(10, True) ‘Результат: окт End Sub |
Функция Now
Now – это функция, которая возвращает текущую системную дату и время. Тип возвращаемого значения – Variant/Date.
Синтаксис
Пример
Sub PrimerNow() MsgBox Now MsgBox Day(Now) MsgBox Hour(Now) End Sub |
Функция Second
Second – это функция, которая возвращает количество секунд в виде числа от 0 до 59 включительно. Тип возвращаемого значения – Variant/Integer.
Синтаксис
Параметр time
– любое числовое или строковое выражение, представляющее время.
Пример
Sub PrimerSecond() MsgBox Second(Now) MsgBox Second(«22:30:14») End Sub |
Функция Time
Time – это функция, которая возвращает значение текущего системного времени. Тип возвращаемого значения – Variant/Date.
Синтаксис
Пример
Sub PrimerTime() MsgBox «Текущее время: « & Time End Sub |
Функция TimeSerial
TimeSerial – это функция, которая возвращает значение времени для указанного часа, минуты и секунды. Тип возвращаемого значения – Variant/Date.
Синтаксис
TimeSerial(hour, minute, second) |
Параметры
Параметр | Описание |
---|---|
hour | Обязательный параметр типа Integer. Числовое выражение, возвращающее значение от 0 до 23 включительно. |
minute | Обязательный параметр типа Integer. Числовое выражение, возвращающее любое значение (в пределах Integer), а не только от 0 до 59.* |
second | Обязательный параметр типа Integer. Числовое выражение, возвращающее любое значение (в пределах Integer), а не только от 0 до 59.* |
* Функция TimeSerial автоматически пересчитывает общее количество секунд в полные минуты и остаток, общее количество минут в полные часы и остаток (подробнее в примере).
Пример
Sub PrimerTime() MsgBox TimeSerial(5, 16, 4) ‘Результат: 5:16:04 MsgBox TimeSerial(5, 75, 158) ‘Результат: 6:17:38 End Sub |
Разберем подробнее строку TimeSerial(5, 75, 158)
:
- 158 секунд = 120 секунд (2 минуты) + 38 секунд;
- 75 минут = 60 минут (1 час) + 15 минут.
В итоге получается:
TimeSerial(5+1, 15+2, 38) = TimeSerial(6, 17, 38)
Функция TimeValue
TimeValue – это функция, которая преобразует время, указанное в виде строки, в значение типа Variant/Date (дата игнорируется).
Синтаксис
Параметр time
– строковое выражение, представляющее время с 0:00:00 по 23:59:59 включительно.
Пример
Sub PrimerTimeValue() MsgBox TimeValue(«6:45:37 PM») ‘Результат: 18:45:37 MsgBox TimeValue(«17 мая 2021 3:59:15 AM») ‘Результат: 3:59:15 End Sub |
Функция TimeValue игнорирует дату, указанную в преобразуемой строке, но если дата указана в некорректном виде (например, «30.02.2021»), будет сгенерирована ошибка.
Функция Weekday
Weekday – это функция, которая возвращает день недели в виде числа от 1 до 7 включительно. Тип возвращаемого значения – Variant/Integer.
Синтаксис
Weekday(date, [firstdayofweek]) |
Параметры
Параметр | Описание |
---|---|
date | Обязательный параметр. Любое выражение (числовое, строковое), отображающее дату. |
firstdayofweek | Константа, задающая первый день недели. По умолчанию – воскресенье. |
Таблицу констант из коллекции firstdayofweek
смотрите в параграфе «Приложение 2».
Пример
Sub PrimerWeekday() MsgBox Weekday(«23 апреля 2021», vbMonday) ‘Результат: 5 MsgBox Weekday(202125, vbMonday) ‘Результат: 6 End Sub |
Функция WeekdayName
WeekdayName – это функция, которая возвращает название дня недели в виде строки.
Синтаксис
WeekdayName(weekday, [abbreviate], [firstdayofweek]) |
Параметры
Параметр | Описание |
---|---|
weekday | Обязательный параметр. Числовое обозначение дня недели от 1 до 7 включительно. |
abbreviate | Необязательный параметр. Логическое значение: True – возвращается сокращенное название дня недели, False (по умолчанию) – название дня недели не сокращается. |
firstdayofweek | Константа, задающая первый день недели. По умолчанию – воскресенье. |
Таблицу констант из коллекции firstdayofweek
смотрите в параграфе «Приложение 2».
Пример
Sub PrimerWeekdayName() MsgBox WeekdayName(3, True, vbMonday) ‘Результат: Ср MsgBox WeekdayName(3, , vbMonday) ‘Результат: среда MsgBox WeekdayName(Weekday(Now, vbMonday), , vbMonday) End Sub |
Функция Year
Year – это функция, которая возвращает номер года в виде числа. Тип возвращаемого значения – Variant/Integer.
Синтаксис
Параметр date
– любое числовое или строковое выражение, представляющее дату.
Пример
Sub PrimerYear() MsgBox Year(Now) End Sub |
Приложение 1
Таблица аргументов (значений) параметраinterval
для функций DateAdd
, DateDiff
и DatePart
:
Аргумент | Описание | Интервал значений |
---|---|---|
yyyy | Год | 100 – 9999 |
q | Квартал | 1 – 4 |
m | Месяц | 1 – 12 |
y | День года | 1 – 366 |
d | День месяца | 1 – 31 |
w | День недели | 1 – 7 |
ww | Неделя | 1 – 53 |
h | Часы | 0 – 23 |
n | Минуты | 0 – 59 |
s | Секунды | 0 – 59 |
В третьей графе этой таблицы указаны интервалы значений, возвращаемых функцией DatePart
.
Приложение 2
Константы из коллекции firstdayofweek
:
Константа | Значение | Описание |
---|---|---|
vbUseSystem | 0 | Используются системные настройки |
vbSunday | 1 | Воскресенье (по умолчанию) |
vbMonday | 2 | Понедельник |
vbTuesday | 3 | Вторник |
vbWednesday | 4 | Среда |
vbThursday | 5 | Четверг |
vbFriday | 6 | Пятница |
vbSaturday | 7 | Суббота |
Приложение 3
Константы из коллекции firstweekofyear
:
Константа | Значение | Описание |
---|---|---|
vbUseSystem | 0 | Используются системные настройки. |
vbFirstJan1 | 1 | Неделя, в которую входит 1 января (по умолчанию). |
vbFirstFourDays | 2 | Неделя, в которую входит не менее четырех дней нового года. |
vbFirstFullWeek | 3 | Первая полная неделя года. |
Формулировка задачи:
Ктонибудь знает как узнать сколько дней в месяце, по дате без циклов.
Например 10.2004 сколько в нём дней или какое последнее число.
Код к задаче: «Как узнать сколько дней в месяце, по дате без циклов?»
textual
Sub Тест() Dim datDate As Date Dim bytDay As Byte datDate = "1.10.2004" bytDay = Day(DateAdd("d", -1, (DateAdd("m", 1, datDate)))) End Sub
Полезно ли:
5 голосов , оценка 4.800 из 5