Настройка отображения даты после добавления ее в ячейку - PullRequest
0 голосов
/ 29 марта 2019

Просто начинаю писать VBA здесь, сырой новичок.

Я ищу помощь в уточнении отображаемой даты.С помощью примеров, которые я нашел в Интернете, у меня есть модуль для ввода названия последнего месяца и года в ячейку на моем рабочем столе Totals, и он делает то, что мне нужно.

Чтобы сделать его идеальным, я бы хотел изменить информацию о дате.

Это Excel в Office 365. Я искал примеры в Интернете и читал учебники по использованию DateAdd, но нигде не могу его найти.(Часть проблемы в том, что я такой новый, я не знаю, как сформулировать что-то в vba-говорить, чтобы найти хорошие ответы!)

Что я сейчас использую:

Sub PreviousMonthBasedOnCurrentMonth()

Dim ws As Worksheet

Set ws = Worksheets("Totals")

ws.Range("A1") = Format(DateAdd("m", -1, Date), "mmmm yyyy")

End Sub

Теперь в ячейку вставлено «1 февраля 2019 года», и этого достаточно для того, чтобы подтвердить, на какой месяц я смотрю.Но в идеале мне бы хотелось, чтобы «1-2 февраля 2019 года» (или, скажем, «1-31 октября 2019 года», если я запускаю это в ноябре).

Как мне получить 'первый день месяца - часть последнего дня месяца для отображения?Это часть DateAdd или больше кодирования с нуля?

Не уверен, как сам написать что-то подобное.Указатели на то, с чего начать, были бы великолепны.

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Вы также можете сделать это в одной строке следующим образом:

Debug.Print Format(DateAdd("m", -1, Date), "mmmm") & " 1-" & Format(CDate(WorksheetFunction.EoMonth(DateAdd("m", -1, Date), 0)), "dd, yyyy")

ИЛИ

Debug.Print Format(DateAdd("m", -1, Date), "mmmm") & YourPartialDateVariableHere & Format(CDate(WorksheetFunction.EoMonth(DateAdd("m", -1, Date), 0)), "dd, yyyy")
0 голосов
/ 29 марта 2019

Попробуйте что-то вроде этого:

Dim dt, dt2

dt = DateAdd("m", -1, Date) 'this time last month

dt2 = DateSerial(Year(Date), Month(Date), 1) - 1 'last day of previous month

Debug.Print Format(dt2, "mmmm") & " 1-" & Day(dt2) & " " & Format(dt2, "yyyy")

Примечание. Excel не увидит это как дату ...

...