Функция VBA, которая возвращает номер месяца - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь создать функцию VBA, которая возвращает номер месяца со ссылкой на ячейку. Я хочу вызвать функцию CheckMonth

Например, если у меня 01.01.2009 (дд / мм / гггг) в качестве даты, я хочу вернуть ее как целое число (в данном случае 01)

или за 04/06/2019 (возвращается 06) 09.12.2009 (возвращает 09) и т. Д.

 Function CheckMonth () As integer

  Mid(Range("Active.cell"), 4, 2)

Я знаю, что мне нужно использовать этот Mid (диапазон (x, 4,2)), но не знаю, как его реализовать.

Пожалуйста, не могли бы вы посоветовать, как я могу это сделать?

Ответы [ 3 ]

3 голосов
/ 29 апреля 2019

Если вам нужен VBA, то подумайте:

Function CheckMonth(r As Range) As Integer
    CheckMonth = Month(r.Value)
End Function

Он вернет номер месяца независимо от форматирования даты.

enter image description here

1 голос
/ 29 апреля 2019

Согласно предыдущим комментариям, вы можете использовать функцию Месяц. Вам также необходимо добавить аргумент Excel.Range:

Function CheckMonth(rngCell As Excel.Range) As Integer
    CheckMonth = Month(rngCell.Value)
End Function
0 голосов
/ 29 апреля 2019

С точки зрения обучения, возможно, несколько вариантов позволят вам лучше понять различные доступные инструменты:

Public Function CheckMonth(r As Range) As String
    ' Find month number and then format that to double-digit string
    CheckMonth = Format(Month(r.Value), "00")
End Function

Public Function CheckMonth2(r As Range) As String
    ' Format the date to 'mm' - i.e. just the month element
    CheckMonth2 = Format(r.Value, "mm")
End Function

Public Function CheckMonth3(r As Range) As String
    ' Format the date to a standard string and extract the middle element
    CheckMonth3 = Mid(Format(r.Value, "dd/mm/yyyy"), 4, 2)
End Function

Public Function CheckMonth4(r As Range) As String
    ' Concatenate a zero with the month number, then take last 2 characters
    CheckMonth4 = Right("0" & Month(r.Value), 2)
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...