วิธีค้นหาวันสุดท้ายของเดือนโดยใช้ vba (พร้อมตัวอย่าง)
คุณสามารถใช้ฟังก์ชัน DateSerial() ใน VBA ที่มีค่า 0 สำหรับอาร์กิวเมนต์วันเพื่อค้นหาวันสุดท้ายของเดือนสำหรับวันที่ในเซลล์ใดเซลล์หนึ่ง
ตัวอย่างเช่น คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อค้นหาวันสุดท้ายของเดือนสำหรับวันที่ในเซลล์ A1 และส่งคืนวันที่นั้นในเซลล์ B1 :
dateVal = DateValue(Range(" A1 "))
Range(" B1 ").Value = DateSerial(Year(dateVal), Month(dateVal)+1, 0)
ตัวอย่างเช่น หากเซลล์ A1 มี 5/1/2023 เซลล์ B1 จะส่งกลับ 1/31/2023
ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ
ตัวอย่าง: การใช้ VBA เพื่อค้นหาวันสุดท้ายของเดือน
สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน Excel ซึ่งมีข้อมูลเกี่ยวกับการขายที่เกิดขึ้นในวันที่ต่างกันในบริษัท:
สมมติว่าเราต้องการค้นหาวันสุดท้ายของเดือนสำหรับแต่ละวันที่ในคอลัมน์ A และส่งคืนวันที่ในเซลล์ที่เกี่ยวข้องในคอลัมน์ C
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อทำสิ่งนี้:
SubFirstDayOfMonth ()
Dim i As Integer
For i = 2 To 11
dateVal = DateValue(Range(" A " & i))
Range(" C " & i).Value = DateSerial(Year(dateVal), Month(dateVal)+1, 0)
Next i
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
แต่ละวันที่ในคอลัมน์ C แสดงถึงวันสุดท้ายของเดือนสำหรับวันที่ที่สอดคล้องกันในคอลัมน์ A
หมายเหตุ #1: ในโค้ด เราใช้ For i = 2 ถึง 11 เนื่องจากเซลล์ A2 ถึง A11 มีวันที่ที่เราสนใจ คุณสามารถเปลี่ยนช่วงนี้ได้โดยขึ้นอยู่กับช่วงของเซลล์ที่คุณต้องการใช้
หมายเหตุ #2 : คุณสามารถค้นหาเอกสารฉบับสมบูรณ์ของฟังก์ชัน DateSerial() ใน VBA ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ โดยใช้ VBA:
วิธีจัดเรียงตามวันที่ใน VBA
วิธีเพิ่ม if ระหว่างวันที่สองวันใน VBA
วิธีนับมากกว่าวันที่ใน VBA