Hẹn giờ VBA | Ví dụ để sử dụng Hàm hẹn giờ VBA trong Excel

Hàm TIMER VBA trong Excel

VBA Timer là một chức năng có sẵn được sử dụng để cung cấp cho chúng ta giá trị phân số của giây, nó là một chức năng rất hữu ích được sử dụng để đôi khi tạm dừng bất kỳ bộ mã nào đang chạy hoặc tiếp tục chúng dựa trên thời gian do người dùng cung cấp, bộ đếm thời gian chỉ đơn giản là được sử dụng như một câu lệnh trong VBA với đầu vào là thời gian.

Nói một cách dễ hiểu, TIMER cho biết tổng số giây đã trôi qua từ nửa đêm của ngày hiện tại. Ngay từ dòng một của mã, chúng tôi thực sự có thể theo dõi thời gian mà mã của chúng tôi tiêu thụ để hoàn thành quá trình được chỉ định trong quy trình con.

Đôi khi khi bạn viết mã và bạn muốn kiểm tra thời lượng mã tức là tổng thời gian mã của bạn thực hiện để hoàn thành quy trình con là bao nhiêu. Bằng cách kiểm tra thời lượng thực tế mà mã của bạn thực hiện, bạn có thể làm cho mã của mình hiệu quả và loại bỏ quá trình tốn thời gian bằng cách xóa các mã dài hoặc không mong muốn khỏi mô-đun của bạn.

Làm thế nào để sử dụng Hàm TIMER trong VBA?

Như tôi đã nói, hàm TIMER trả về tổng số giây đã trôi qua từ nửa đêm của ngày hiện tại. Khi tôi viết bài này, thời gian là 13:50:45 ở Ấn Độ.

Tôi đã tạo tên macro và gán giá trị TIMER trong hộp thông báo VBA.

Mã:

 Sub Timer_Example1 () MsgBox Timer End Sub 

Khi tôi chạy mã này, tôi nhận được kết quả là 50480.08.

Đây là tổng số giây đã trôi qua kể từ nửa đêm hôm nay, tức là từ 12:00:00 sáng

Vì vậy, từ nửa đêm 12 đến giờ hiện tại 14:01:20, tổng cộng 14 giờ 1 phút 20 giây đã trôi qua. Trong vài giây, nó bằng 50480,08 được cung cấp bởi chức năng TIMER của chúng tôi.

Các ví dụ

Bạn có thể tải xuống Mẫu Excel Hẹn giờ VBA này tại đây - Mẫu Excel Hẹn giờ VBA

Ví dụ # 1 - Tính Tổng thời gian mà mã của bạn đã thực hiện

Bây giờ chúng ta sẽ thực hiện một số mã hóa đơn giản để kiểm tra thời gian thực thi thủ tục của VBA. Tôi đã viết một số mã như được hiển thị trong hình ảnh dưới đây.

Mã:

 Sub Do_Until_Example1 () Dim ST As Single ST = Timer Dim x As Long x = 1 Do Until x = 100000 Cells (x, 1) .Value = xx = x + 1 Loop MsgBox Timer - ST End Sub 

Nếu tôi chạy mã này ngay bây giờ, nó sẽ hiển thị cho tôi tổng thời gian VBA thực thi.

Nó cho biết 3.058594, kết quả được đưa ra bởi chức năng này là tính bằng giây, tức là tổng thời gian thực hiện bởi mã này là 3.058 giây.

Để bạn sử dụng mã, tôi đã viết đoạn mã dưới đây cho bạn.

Mã:

 Sub Timer_Example1 () Dim StartTime As Single StartTime = Timer 'Nhập mã của bạn tại đây' Nhập mã của bạn vào đây 'Nhập mã của bạn tại đây' Nhập mã của bạn tại đây MsgBox Timer - Thời gian bắt đầu Kết thúc Sub 

Sử dụng ở trên và nhập mã của bạn sau mã StartTime = Timer nhưng trước mã MsgBox Timer - StartTime tức là trong vùng màu xanh lá cây, bạn cần nhập mã của mình.

Giải thích: Đầu tiên biến StartTime = Timer có nghĩa là tại thời điểm chạy mã bằng với thời gian trôi qua từ nửa đêm đến thời gian chạy mã.

Bộ hẹn giờ - Thời gian bắt đầu: Có nghĩa là sau khi chạy mã, thời gian trôi qua trừ đi thời gian được ghi ở đầu mã thông qua thời gian bắt đầu có thể thay đổi .

Điều này sẽ cung cấp sự khác biệt giữa thời gian bắt đầu và kết thúc và trả về kết quả.

Ví dụ # 2 - Hiển thị Kết quả ở Định dạng Thời gian Chính xác

Như chúng ta đã thấy kết quả được đưa ra bởi hàm tính bằng giây nhưng không ở định dạng chính xác. Tuy nhiên, chúng ta có thể áp dụng định dạng thời gian VBA cho kết quả cuối cùng bằng cách sử dụng hàm FORMAT.

Sử dụng mã dưới đây để xem kết quả ở định dạng thời gian chính xác, tức là định dạng “hh: mm: ss”.

Tôi đã sử dụng hàm FORMAT ở đây. Kết quả được đưa ra bởi (Timer - thời gian bắt đầu). Tôi đã chia nó cho số 86400 để chuyển nó thành giây theo quy tắc định dạng thời gian, sau đó tôi đã áp dụng định dạng thời gian ở định dạng giờ, phút và giây.

Bây giờ nếu tôi chạy mã nó sẽ cho kết quả như thế này.

Vì vậy, tổng thời gian được thực hiện bởi mã là 3 Giây.

Vẻ đẹp của mã này là thời điểm nó vượt qua 60 giây, nó sẽ hiển thị kết quả trong vài phút. Tôi đã tạm dừng mã của mình đang chạy trong một phút (sử dụng Ctrl + Break) và xem kết quả.

Vì vậy, tổng thời gian được thực hiện bởi mã này bây giờ là 1 phút 2 giây.

Ví dụ # 3 - Mã thay thế cho bộ hẹn giờ

Có một giải pháp thay thế cho TIMER bằng cách sử dụng hàm NOW () . Dưới đây là mã thay thế.

Những điều cần ghi nhớ

  • Hàm TIMER sẽ hiển thị giá trị vào cuối ngày, tức là lúc 11:59:59 PM.
  • Hàm NOW trả về ngày hiện tại và thời gian hiện tại.
  • TIMER hiển thị tổng số giây đã trôi qua từ nửa đêm của ngày hiện tại.

$config[zx-auto] not found$config[zx-overlay] not found