วิธีค้นหาวันแรกของเดือนโดยใช้ vba (พร้อมตัวอย่าง)


คุณสามารถใช้ฟังก์ชัน DateSerial() ใน VBA ที่มีค่า 1 สำหรับอาร์กิวเมนต์วันเพื่อค้นหาวันแรกของเดือนสำหรับวันที่ในเซลล์ใดเซลล์หนึ่ง

ตัวอย่างเช่น คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อค้นหาวันแรกของเดือนสำหรับวันที่ในเซลล์ A1 และส่งคืนวันที่นั้นในเซลล์ B1 :

 dateVal = DateValue(Range(" A1 "))

Range(" B1 ").Value = DateSerial(Year(dateVal), Month(dateVal), 1)

ตัวอย่างเช่น หากเซลล์ A1 มี 5/1/2023 เซลล์ B1 จะส่งกลับ 1/1/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)
Next i

End Sub

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

VBA ค้นหาวันแรกของเดือน

แต่ละวันที่ในคอลัมน์ C แสดงถึงวันแรกของเดือนสำหรับวันที่ที่สอดคล้องกันในคอลัมน์ A

หมายเหตุ #1: ในโค้ด เราใช้ For i = 2 ถึง 11 เนื่องจากเซลล์ A2 ถึง A11 มีวันที่ที่เราสนใจ คุณสามารถเปลี่ยนช่วงนี้ได้โดยขึ้นอยู่กับช่วงของเซลล์ที่คุณต้องการใช้

หมายเหตุ #2 : คุณสามารถค้นหาเอกสารฉบับสมบูรณ์ของฟังก์ชัน DateSerial() ใน VBA ได้ที่นี่

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

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

วิธีจัดเรียงตามวันที่ใน VBA
วิธีเพิ่ม if ระหว่างวันที่สองวันใน VBA
วิธีนับมากกว่าวันที่ใน VBA

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

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