32.8 C
Ho Chi Minh City
Thursday, June 4, 2026
AIPHOGPT.COM
Trang chủCông thức ExcelCác hàm Wait và Sleep trong VBA

Các hàm Wait và Sleep trong VBA

Join LeQuocThai.Com on Telegram Channel

Đánh giá lequocthai.com:

0 / 5 Voted: 0 Votes: 0

Your page rank:

Tuy nhiên, máy tính vẫn có thể thực hiện các tác vụ nền khác như in ấn hoặc xử lý các luồng (thread).

Ý nghĩa của các hàm Wait và Sleep trong VBA:

Các hàm này hữu ích khi bạn cần đợi một quy trình hoặc tác vụ khác (không giao tiếp trực tiếp với VBA) hoàn thành.

Trong trường hợp đó, bạn có thể xác định thời gian tối đa cần để tác vụ hoàn thành, sau đó trong mã VBA tạm dừng thực thi trong khoảng thời gian đã định.

Ví dụ: một đoạn mã VBA có thể chạy một tệp thực thi (.exe); sau khi khởi chạy tệp, chúng ta cần đợi cho đến khi tệp thực thi kết thúc mới tiếp tục thực hiện phần còn lại của mã. Vì VBA không thể giao tiếp trực tiếp với tệp thực thi, nên chúng ta có thể lập trình như sau: đầu tiên khởi chạy tệp, sau đó tạm dừng 10 giây (thời gian tối đa tệp này cần chạy), cuối cùng mới tiếp tục thực thi.

Hàm VBA Wait trong Excel

`WAIT` là một hàm VBA chỉ có sẵn trong Excel. Cú pháp như sau:

Application.Wait(Time)

Trong đó Time là thời gian mà bạn muốn macro tạm dừng. Time phải ở định dạng thời gian của Microsoft Excel.

Khám phá:  HLOOKUP trong Excel – Các ví dụ thực tế

Một số ví dụ về hàm Wait trong VBA:

Ví dụ 1: Dừng mã đến 2 giờ chiều hôm nay.

Sub WaitTest()

MsgBox "Ứng dụng này đã bắt đầu!"

Application.Wait "14:00:00"

MsgBox "Tiếp tục thực thi sau 2 giờ chiều"

End Sub

Ví dụ 2: Dừng ứng dụng trong 10 giây.

Sub WaitTest()

MsgBox "Ứng dụng này đã bắt đầu!"

Application.Wait (Now + TimeValue("0:00:10"))

MsgBox "Tiếp tục thực thi sau 10 giây"

End Sub

Ví dụ 3: Sử dụng hàm Wait để tạo chương trình thông báo thời gian mỗi phút, thực hiện 10 vòng lặp.

Public Sub TalkingTime()

For i = 0 To 10

Application.Wait (Now + TimeValue("0:01:00"))

Application.Speech.Speak "Giờ là " & Time

Next i

End Sub

Chuyển sang hàm Sleep

Sleep Function:

`Sleep` là một hàm của Windows, không phải hàm VBA, nhưng bạn vẫn có thể gọi hàm này trong mã VBA thông qua API Sleep của Windows. Thực tế, Sleep nằm trong các tệp DLL của Windows; vì vậy trước khi sử dụng, cần khai báo hàm API ở đầu mô-đun.

Cú pháp của lệnh Sleep như sau:

Sleep(delay)

Trong đó delay là thời gian tạm dừng tính bằng mili giây.

Một số ví dụ về hàm Sleep trong VBA:

Ví dụ 1: Dừng ứng dụng trong 10 giây.

#If VBA7 Then

Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) ' Cho hệ thống 64‑bit

#Else

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) ' Cho hệ thống 32‑bit

#End If

Sub SleepTest()

MsgBox "Thực thi đã bắt đầu"

Sleep 10000 ' độ trễ tính bằng mili giây

MsgBox "Thực thi tiếp tục"

End Sub

Ví dụ 2: Dừng mã theo thời gian do người dùng nhập qua hộp thoại InputBox.

Sub SleepTest()

On Error GoTo InvalidRes

Dim i As Integer

i = InputBox("Nhập số giây bạn muốn tạm dừng mã:")

Sleep i * 1000 ' độ trễ tính bằng mili giây

MsgBox "Mã đã dừng trong " & i & " giây."

Exit Sub

InvalidRes:

MsgBox "Giá trị không hợp lệ"

End Sub

Sự khác nhau giữa VBA Wait và Sleep

Công dụng của hai hàm này giống nhau, nhưng hàm Sleep không chính xác như hàm Wait. Lệnh Sleep dựa vào các tick của bộ xử lý để tính thời gian trễ, do đó có thể có sự chênh lệch nhẹ trên các máy khác nhau, trong khi hàm Wait không chịu ảnh hưởng của vấn đề này.

Ưu điểm của Sleep so với Wait là tính linh hoạt: bạn có thể chỉ định thời gian trễ tính bằng mili giây, trong khi hàm Wait chỉ cho phép trễ tính bằng giây nguyên.

Đó là toàn bộ nội dung về các hàm VBA Wait và Sleep. Nếu bạn có bất kỳ thắc mắc nào liên quan đến chủ đề này, hãy cho chúng tôi biết.

Join LeQuocThai.Com on Telegram Channel

Lê Quốc Thái
Lê Quốc Tháihttps://lequocthai.com/
Yep! I am Le Quoc Thai codename name tnfsmith, one among of netizens beloved internet precious, favorite accumulate sharing all my knowledge and experience Excel, PC tips tricks, gadget news during over decades working in banking data analysis.

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây
Captcha verification failed!
CAPTCHA user score failed. Please contact us!

Join LeQuocThai.Com on Telegram Channel

Đọc nhiều nhất

BÀI VIẾT MỚI NHẤT

CÙNG CHỦ ĐỀ