Получите 1-й и последний день числа месяца - PullRequest
0 голосов
/ 01 октября 2019

Давайте предположим, что в A1 у меня есть 1 (для меня это номер месяца), то есть январь.

Как я могу получить 1-е день и последний день для текущего года, учитывая число месяца 4 ? (В VBA, ЕСЛИ ВОЗМОЖНО)

Не пробовал код, потому что я нашел в Интернете только формулы, но ничего с номером месяца ...

Все ссылки и предложения принимаются также

Ответы [ 3 ]

3 голосов
/ 01 октября 2019

Один вариант с DateSerial и DateAdd:

Sub Test()
    Dim monthNum As Long
    monthNum = 4

    Dim firstDay As Date
    firstDay = DateSerial(Year(Date), monthNum, 1)

    Dim lastDay As Date
    lastDay = DateAdd("m", 1, firstDay) - 1    
End Sub

РЕДАКТИРОВАТЬ : Вы также можете использовать DateSerial за последний день:

DateSerial(Year(Date), monthNumber + 1, 0)
2 голосов
/ 01 октября 2019

Вы можете попробовать что-то вроде ниже. Это определенно обходной путь, так как я уверен, что кто-то другой найдет лучшее решение!

Option Explicit

Sub GetLastDay()

    Dim i As Long
    Dim lMonth As Long, dDateTest As Date

    'april
    lMonth = 4

    'first date
    Debug.Print "First day in month is always 1"

    'last day
    '31 is max in any given month
    For i = 1 To 32
        dDateTest = DateSerial(Year(Date), lMonth, i)
        If Month(dDateTest) <> lMonth Then
            Debug.Print "Last day in month = " & (i - 1)
            Exit For
        End If
    Next i

End Sub

В результате распечатайте:

Last day in month = 30

0 голосов
/ 01 октября 2019

У меня есть решение для вас. Предположим, у вас есть количество месяцев в столбце A, а первая и последняя дата того же номера месяца должны отображаться в столбцах B и C соответственно:


Dim mnt As Long, xrow As Long
Dim i As Long, Ws As Worksheet
Set Ws = ThisWorkbook.Sheets("Sheet1")
xrow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To xrow
    Ws.Cells(i, 2).Value = "=date(year(today()),RC[-1],1)"
    Ws.Cells(i, 3).Value = "=eomonth(RC[-1],0)"
Next i

End Sub

Надежда, которая помогает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...