Vba: 날짜와 함께 match 함수를 사용하는 방법


다음 구문을 사용하여 MATCH 함수를 사용하여 VBA에서 날짜를 찾을 수 있습니다.

 SubMatchDate ()
    
'attempt to find date in range
On Error GoTo NoMatch
    MyMatch = WorksheetFunction.Match(CLng(CDate(" 4/15/2023 ")), Range(" A2:A10 "), 0)
    MsgBox (MyMatch)
End
    
'if no date found, create message box to tell user
NoMatch:
    MsgBox (" No Match Found ")
End

End:
End Sub

이 특정 예에서는 A2:A10 범위에서 2023년 4월 15일 날짜를 찾습니다.

날짜가 발견되면 해당 날짜가 포함된 범위의 행을 사용자에게 알려주는 메시지 상자가 나타납니다.

날짜를 찾을 수 없으면 “일치하는 항목을 찾을 수 없습니다”라는 메시지 상자가 나타나서 사용자는 날짜가 범위에 존재하지 않는다는 것을 알 수 있습니다.

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

참고 : CDate 함수는 텍스트 문자열을 VBA의 날짜로 변환합니다.

예: VBA에서 날짜에 MATCH 함수 사용

Excel의 A2:A10 범위에 다음과 같은 날짜 목록이 있다고 가정합니다.

다음 매크로를 생성하여 A2:A10 범위에서 2023년 4월 15일 날짜를 포함하는 행 번호를 찾을 수 있습니다.

 SubMatchDate ()
    
'attempt to find date in range
On Error GoTo NoMatch
    MyMatch = WorksheetFunction.Match(CLng(CDate(" 4/15/2023 ")), Range(" A2:A10 "), 0)
    MsgBox (MyMatch)
End
    
'if no date found, create message box to tell user
NoMatch:
    MsgBox (" No Match Found ")
End

End:
End Sub

이 매크로를 실행하면 다음과 같은 출력이 나타납니다.

메시지 상자에는 2023년 4월 15일 날짜가 A2:A10 범위의 7번째 줄에서 발견되었음을 알려줍니다.

대신 04/25/2023 날짜를 검색하면 다음과 같은 결과를 얻게 됩니다.

메시지 상자에는 2023년 4월 25일 날짜가 범위에서 발견되지 않았음을 알려줍니다.

참고 : 여기 에서 VBA의 Match 메서드에 대한 전체 문서를 찾을 수 있습니다.

추가 리소스

다음 자습서에서는 VBA에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

VBA: XLOOKUP 사용 방법
VBA: 인덱스 일치를 사용하는 방법
VBA: 여러 기준으로 INDEX MATCH를 사용하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다