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 ที่มีหลายเกณฑ์