วิธีการคำนวณความแตกต่างของเวลาใน vba (พร้อมตัวอย่าง)
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้ใน VBA เพื่อคำนวณความแตกต่างระหว่างสองครั้ง:
Sub FindTimeDifference()
Dim i As Integer
For i = 2 To 7
'calculate time difference in days
Range(" C " & i) = Range(" B " & i) - Range(" A " & i)
'calculate time difference in hours
Range(" D " & i) = (Range(" B " & i) - Range(" A " & i)) * 24
'calculate time difference in minutes
Range(" E " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60
'calculate time difference in seconds
Range(" F " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60 * 60
Next i
End Sub
มาโครนี้จะคำนวณความแตกต่างระหว่างเวลาที่สอดคล้องกันในช่วง A2:A7 และ B2:B7 และส่งกลับผลลัพธ์ต่อไปนี้:
- C2:C7 จะมีเวลาต่างกันเป็นวัน
- D2:D7 จะมีเวลาต่างกันเป็นชั่วโมง
- E2:E7 จะมีเวลาต่างกันเป็นนาที
- F2:F7 จะมีส่วนต่างของเวลาเป็นวินาที
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: คำนวณความแตกต่างของเวลาใน VBA
สมมติว่าเรามีเวลาเริ่มต้นและเวลาสิ้นสุดสองคอลัมน์ต่อไปนี้ใน Excel:
เราสามารถสร้างแมโครต่อไปนี้เพื่อคำนวณความแตกต่างของเวลาระหว่างเวลาเริ่มต้นและเวลาสิ้นสุดแต่ละครั้ง และแสดงผลลัพธ์ในคอลัมน์ C ถึง F:
Sub FindTimeDifference()
Dim i As Integer
For i = 2 To 7
'calculate time difference in days
Range(" C " & i) = Range(" B " & i) - Range(" A " & i)
'calculate time difference in hours
Range(" D " & i) = (Range(" B " & i) - Range(" A " & i)) * 24
'calculate time difference in minutes
Range(" E " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60
'calculate time difference in seconds
Range(" F " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60 * 60
Next i
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
คอลัมน์ C ถึง F จะแสดงความแตกต่างของเวลาระหว่างเวลาเริ่มต้นและเวลาสิ้นสุดในหน่วยต่างๆ
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
วิธีเปรียบเทียบวันที่ใน VBA
วิธีคำนวณวันระหว่างวันที่สองวันใน VBA
วิธีแปลงสตริงเป็นวันที่ใน VBA