Vba: วิธีแปลงวันที่เป็นหมายเลขสัปดาห์


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้ใน VBA เพื่อแปลงวันที่เป็นตัวเลขสัปดาห์:

 Sub FindWeekNumber()
    
    Dim i As Integer

    For i = 2 To 9
        Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i))
    Next i
    
End Sub

ตัวอย่างนี้จะค้นหาหมายเลขสัปดาห์สำหรับแต่ละวันที่ในช่วง A2:A9 และแสดงผลลัพธ์ในช่วง B2:B9

โปรดทราบว่าวิธี VBA WeekNum จะถือว่าสัปดาห์ต่างๆ เริ่มต้นในวันอาทิตย์

หากต้องการระบุวันอื่นเป็นวันเริ่มต้นสัปดาห์ คุณสามารถเพิ่มอาร์กิวเมนต์ที่สองให้กับเมธอด WeekNum ได้:

 Sub FindWeekNumber()
    
    Dim i As Integer

    For i = 2 To 9
        Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i), vbMonday)
    Next i
    
End Sub

ตัวอย่างต่อไปนี้แสดงวิธีการใช้วิธี WeekNum เพื่อแปลงวันที่เป็นตัวเลขสัปดาห์ในทางปฏิบัติ

ตัวอย่าง: แปลงวันที่เป็นหมายเลขสัปดาห์ใน VBA

สมมติว่าเรามีคอลัมน์วันที่ต่อไปนี้ใน Excel:

สมมติว่าเราต้องการแปลงแต่ละวันที่ให้เป็นตัวเลขสัปดาห์และแสดงหมายเลขสัปดาห์ในคอลัมน์ B

เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:

 Sub FindWeekNumber()
    
    Dim i As Integer

    For i = 2 To 9
        Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i))
    Next i
    
End Sub

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

VBA แปลงวันที่เป็นหมายเลขสัปดาห์

คอลัมน์ B จะแสดงหมายเลขสัปดาห์สำหรับแต่ละวันที่ในคอลัมน์ A โดยสมมติว่าสัปดาห์เริ่มต้นในวันอาทิตย์

หากคุณต้องการระบุวันอื่นเป็นวันเริ่มต้นสัปดาห์ เช่น วันจันทร์ คุณสามารถใช้ไวยากรณ์ต่อไปนี้:

 Sub FindWeekNumber()
    
    Dim i As Integer

    For i = 2 To 9
        Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i), vbMonday)
    Next i
    
End Sub

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

ตอนนี้คอลัมน์ B จะแสดงหมายเลขสัปดาห์สำหรับแต่ละวันที่ในคอลัมน์ B โดยสมมติว่าสัปดาห์เริ่มต้นในวันจันทร์

หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มสำหรับวิธี VBA WeekNum ได้ที่นี่

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

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

วิธีเปรียบเทียบวันที่ใน VBA
วิธีแปลงสตริงเป็นวันที่ใน VBA
วิธีคำนวณวันระหว่างวันที่สองวันใน VBA

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

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