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

ตัวอย่างนี้ค้นหาวัน ที่ 15/04/2023 ในช่วง A2:A10

หากพบวันที่ กล่องข้อความจะปรากฏขึ้นเพื่อแจ้งให้ผู้ใช้ทราบว่าแถวใดในช่วงที่มีวันที่

หากไม่พบวันที่ กล่องข้อความจะปรากฏขึ้นว่า “ไม่พบรายการที่ตรงกัน” เพื่อให้ผู้ใช้ทราบว่าไม่มีวันที่อยู่ในช่วง

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

หมายเหตุ : ฟังก์ชัน CDate จะแปลงสตริงข้อความเป็นวันที่ใน VBA

ตัวอย่าง: การใช้ฟังก์ชัน MATCH กับวันที่ใน VBA

สมมติว่าเรามีรายการวันที่ต่อไปนี้ในช่วง A2:A10 ใน Excel:

เราสามารถสร้างมาโครต่อไปนี้เพื่อค้นหาหมายเลขแถวที่มีวันที่ 04/15/2023 ในช่วง A2:A10 :

 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

เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

กล่องข้อความแจ้งเราว่าพบวันที่ 15/04/2023 ในบรรทัด ที่ 7 ของช่วง A2:A10

โปรดทราบว่าหากเราค้นหาวันที่ 04/25/2023 แทน เราจะได้รับผลลัพธ์ต่อไปนี้:

กล่องข้อความแจ้งเราว่าไม่พบวันที่ 25/04/2023 ในช่วง

หมายเหตุ : คุณสามารถดูเอกสารฉบับสมบูรณ์ของวิธี Match ใน VBA ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:

VBA: วิธีใช้ XLOOKUP
VBA: วิธีใช้การจับคู่ดัชนี
VBA: วิธีใช้ INDEX MATCH ที่มีหลายเกณฑ์

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *