วิธีใช้ networkdays ใน vba (พร้อมตัวอย่าง)


คุณสามารถใช้วิธี NetworkDays ใน VBA เพื่อค้นหาจำนวนวันทำการทั้งหมดระหว่างวันที่เริ่มต้นและวันที่สิ้นสุดที่ระบุ

โปรดทราบว่า วันทำการ ไม่รวมวันหยุดสุดสัปดาห์และวันหยุดนักขัตฤกษ์

นี่เป็นวิธีทั่วไปในการใช้วิธีนี้ในทางปฏิบัติ:

 Sub CalculateNetworkDays()

Dim i As Integer

For i = 2 To 9
    Range("C" & i) = WorksheetFunction.NetworkDays(Range("A" & i), Range("B" & i))
Next i

End Sub 

ตัวอย่างนี้จะคำนวณจำนวนวันทำการระหว่างวันที่เริ่มต้นในช่วง A2:A9 และวันที่สิ้นสุดในช่วง B2:B9 และแสดงผลลัพธ์ในช่วง C2:C9

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: วิธีใช้ NetworkDays ใน VBA

สมมติว่าเรามีรายการวันที่เริ่มต้นและวันที่สิ้นสุดใน Excel ดังต่อไปนี้:

สมมติว่าเราต้องการใช้วิธี NetworkDays ใน VBA เพื่อคำนวณจำนวนวันทำการทั้งหมดระหว่างวันที่เริ่มต้นและสิ้นสุดของแต่ละแถว

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

 Sub CalculateNetworkDays()

Dim i As Integer

For i = 2 To 9
    Range("C" & i) = WorksheetFunction.NetworkDays(Range("A" & i), Range("B" & i))
Next i

End Sub

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

คอลัมน์ C แสดงจำนวนวันทำการเต็มระหว่างวันที่เริ่มต้นและวันที่สิ้นสุดในแต่ละแถว

ตัวอย่างเช่น:

  • จำนวนวันทำการระหว่างวันที่ 2/1/2566 ถึง 3/1/2566 คือ 2 (เนื่องจากทั้งสองวันนี้เป็นวันหยุดสุดสัปดาห์)
  • จำนวนวันทำการระหว่างวันที่ 5/1/2566 ถึง 8/1/2566 คือ 2
  • จำนวนวันทำการระหว่างวันที่ 01/10/2023 ถึง 01/20/2023 คือ 9

และอื่นๆ

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

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

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

VBA: วิธีรับชื่อเดือนจากวันที่
VBA: วิธีใช้ IsDate เพื่อตรวจสอบว่าเซลล์เป็นวันที่หรือไม่
VBA: วิธีใช้ mm/dd/yyyy เป็นรูปแบบวันที่

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

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