Vba: วิธีรับเดือนและปีนับจากวันที่
คุณสามารถใช้คุณสมบัติ NumberFormat ใน VBA เพื่อรับเดือนและปีนับจากวันที่ได้
นี่เป็นวิธีทั่วไปในการใช้คุณสมบัตินี้ในทางปฏิบัติ:
SubGetMonthYear ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i).Value = DateValue(Range(" A " & i))
Range(" C " & i).NumberFormat = " mm/yyyy "
Next i
End Sub
มาโครเฉพาะนี้จะค้นหาเดือนและปีสำหรับแต่ละวันที่ในช่วง A2:A11 และแสดงค่าเหล่านี้ในเซลล์ที่เกี่ยวข้องในช่วง C2:C11 .
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: เพิ่มวันในวันนี้ใน VBA
สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน Excel ซึ่งมีข้อมูลเกี่ยวกับยอดขายของบริษัทในวันที่ต่างกัน:

สมมติว่าเราต้องการรับเดือนและปีสำหรับแต่ละเซลล์ในคอลัมน์วันที่
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubGetMonthYear ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i).Value = DateValue(Range(" A " & i))
Range(" C " & i).NumberFormat = " mm/yyyy "
Next i
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

โปรดทราบว่าคอลัมน์ C ประกอบด้วยเดือนและปีของวันที่ที่เกี่ยวข้องแต่ละวันในคอลัมน์ A
โปรดทราบว่าเราใช้คุณสมบัติ NumberFormat เพื่อจัดรูปแบบวันที่ด้วยตัวเลขสองหลักสำหรับเดือนและสี่หลักสำหรับปี
เราสามารถเลือกที่จะแสดงค่าเหล่านี้ในรูปแบบอื่นได้หากต้องการ
ตัวอย่างเช่น เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อแสดงเดือนด้วยตัวเลขหลักเดียว (หากเดือนมีเพียงตัวเลขเดียว) และปีที่มีตัวเลขสองหลัก:
SubGetMonthYear ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i).Value = DateValue(Range(" A " & i))
Range(" C " & i).NumberFormat = " m/yy "
Next i
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

รู้สึกอิสระที่จะเล่นกับตัวเลือกการจัดรูปแบบต่างๆ เพื่อแสดงค่าเดือนและปีตามที่คุณต้องการ
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
วิธีเปรียบเทียบวันที่ใน VBA
วิธีแปลงสตริงเป็นวันที่ใน VBA
วิธีคำนวณวันระหว่างวันที่สองวันใน VBA