sourcecode

당월을 어떻게 받을 수 있습니까?

copyscript 2023. 6. 18. 16:12
반응형

당월을 어떻게 받을 수 있습니까?

저는 현재 월을 받을 수 없습니다.

다음을 사용하여 테스트한 바와 같이 현재 연도와 날짜를 얻는 것은 매우 간단한 것 같습니다.

MsgBox Year(Date)
MsgBox Day(Date)
MsgBox Year(Now)
MsgBox Day(Now)

현재 월을 숫자(1, 2 등) 또는 전체 이름으로 표시하는 방법은 무엇입니까?

나는 사용할 수 있습니다.TODAY()세포에서 그리고 VBA에서 그것을 비슷한 것으로 변환합니다.CurrentMonth = MonthName(Month(Sheet1.Range("A1")))하지만 엑셀의 경우 VBA에서 직접 하고 싶습니다.

해라,

debug.print Format(Date, "mmm")       'Mar
debug.print Format(Date, "mmmm")      'March
debug.print Format(Date, "m")    '3
debug.print Format(Date, "mm")   '03
 Month(Now)

현재 월과 연결된 인덱스 번호를 반환합니다.

아래의 Jeeped 코드는 가장 컴팩트하지만 인덱스가 작동하는 방식에 대한 아이디어를 제공하기 위해 다음 코드는 반환된 인덱스를 기준으로 월 이름을 반환합니다.

Dim months(11) As String
months(0) = "Jan"
months(1) = "Feb"
months(2) = "Mar"
months(3) = "Apr"
months(4) = "May"
months(5) = "Jun"
months(6) = "Jul"
months(7) = "Aug"
months(8) = "Sep"
months(9) = "Oct"
months(10) = "Nov"
months(11) = "Dec"

Dim nowMonth As Integer
nowMonth = Month(Now)

For i = 0 To 11
  If nowMonth = (i + 1) Then
     MsgBox (months(i))
  End If
Next

현재 월 이름을 가져오는 더 쉬운 솔루션을 찾았습니다.

그냥 사용하기MonthName(Month(Now))문자열에 할당합니다.

Month(Now)월 번호를 알려줍니다.MonthName()해당 번호를 사용하여 현재 월을 표시합니다.

정말 유용하고 간단한 방법은 형식 기능을 날짜와 함께 결합하는 것입니다.

예(오늘이 2019년 10월 23일이라고 가정):

원래 질문과 같은 숫자로 현재 달을 얻는 방법

MsgBox Format(Date, "mm")

반환 예정: 10

현재 월을 짧은 텍스트로 가져오는 방법

MsgBox Format(Date, "mmm")

반환 예정:10월

전체 텍스트가 포함된 현재 월을 얻는 방법

MsgBox Format(Date, "mmmm")

반환 예정:10월

날짜와 연도를 조합할 수도 있습니다.

추가 예:

MsgBox Format(Date, "dd-mmm-yyyy")

2019년 10월 23일 복귀 예정

MsgBox Format(Date, "dddd-mmmm-dd-yyyy")

돌아오는 날짜: 수요일-10월-23-2019

이렇게 하면 사용자 지정 형식이 생성되므로 다음과 같이 적합한 대로 dd, mm, yyy 영역을 재정렬할 수 있습니다.

MsgBox Format(Date, "yyyy/mm/dd")

반환 예정일: 2019/23/10

제가 찾은 가장 좋은 방법은 다음과 같습니다.

Sub getMonth()

'MsgBox DatePart("m", Date)
'MsgBox Evaluate("MONTH(""" & Date & """)")
'MsgBox VBA.DateTime.Month(Date)

MsgBox Format(Date, "mmmm")

End Sub

다음은 현재 월 이름을 기준으로 전월을 찾은 방법입니다. monthNum에 대한 할당은 질문을 해결하는 데 필요한 부분입니다.

month = "February"
'****'
  monthNum = Application.Evaluate("=MONTH(1&" & Chr(34) & month & Chr(34) & ")") 'Returns month #
'****'
If monthNum = 1 Then
    monthNum = 12
Else
    monthNum = monthNum - 1
End If
month = MonthName(monthNum) 'Returns January

언급URL : https://stackoverflow.com/questions/35921124/how-to-get-current-month

반응형