Giúp code Application.Ontime chỉ trong File có code

Liên hệ QC

hunglam123

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
31/3/20
Bài viết
180
Được thích
43
Mình muốn sau khi click vào nút bấm thì sau 5 giây thì sẽ chạy 1 đoạn code gì gì đó. Thì minh viết như thế này

Application.Ontime Now + TimeSerial(0,0,5), "abc"
Nhưng tôi đã test rất kỷ. Nó xảy ra các lổi sau:
- Nếu tôi mở thêm file excel khác lên ( và đang active trên file khác ) thì code nó vẫn chạy trên file mới. Tôi chỉ muốn code chỉ chạy trên file chứa code thôi, còn các file khác không được chạy
- Nếu tôi mở thêm file excel khác lên ( và đang active trên file khác ) và tôi đã Thoát hẳn file có code. thì sau 5 giây code vẫn chạy trên file mới. và nó tự mới file có code lên luôn. Mặc dùng tôi đã thoát trước đó

***Túm lại tôi chỉ muốn code chỉ chạy trên file chứa code thôi, dù máy tính có 1 hay nhiều file. Và sẳng giúp tôi đoạn code Stop Onitme
Tôi xin chân thành cảm ơn !
 
Lần chỉnh sửa cuối:
Bạn Sửa "abc" -> "'" & ThisWorkbook.Name & "'!abc"
 
Upvote 0
Bạn Sửa "abc" -> "'" & ThisWorkbook.Name & "'!abc"
Nó vẫn chạy code như thường anh ơi. Anh thử cho chạy code rồi anh mở tiếp 1 file khác lên là code abc nó vẫn áp dụng file mới

Mã:
Sub dada()
Application.OnTime Now + TimeSerial(0, 0, 5), "'" & ThisWorkbook.Name & "'!abc"
End Sub

Sub abc()
MsgBox ("aa")
End Sub
 
Upvote 0
Nó vẫn chạy code như thường anh ơi. Anh thử cho chạy code rồi anh mở tiếp 1 file khác lên là code abc nó vẫn áp dụng file mới

Mã:
Sub dada()
Application.OnTime Now + TimeSerial(0, 0, 5), "'" & ThisWorkbook.Name & "'!abc"
End Sub

Sub abc()
MsgBox ("aa")
End Sub

Sửa toàn bộ trong thủ tục abc:
worksheets("...") thành ThisWorkbook.Worksheets("...")
Range("...") thành thisWorkbook.Worksheets("...").Range("...")
 
Upvote 0
Sửa toàn bộ trong thủ tục abc:
worksheets("...") thành ThisWorkbook.Worksheets("...")
Range("...") thành thisWorkbook.Worksheets("...").Range("...")
vẩn không được anh ạ. nghĩa là sau khi chạy code

Application.OnTime Now + TimeSerial(0, 0, 5), "'" & ThisWorkbook.Name & "'!abc"

xong, trong lúc đợi 5 giây em mở tiếp 1 file khác lên, rồi em thoát file chứa code thì sau 5 giây tự nhiên file chứa code lại hiện lên lại
 
Upvote 0
vẩn không được anh ạ. nghĩa là sau khi chạy code

Application.OnTime Now + TimeSerial(0, 0, 5), "'" & ThisWorkbook.Name & "'!abc"

xong, trong lúc đợi 5 giây em mở tiếp 1 file khác lên, rồi em thoát file chứa code thì sau 5 giây tự nhiên file chứa code lại hiện lên lại
Trước khi thoát, thì phải đặt code này vào BeforeClose

JavaScript:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime TimeABC, "'" & ThisWorkbook.Name & "'!abc",, false
End Sub

Đặt biến toàn cục TimeABC as Date gán timeserial

Public TimeABC as Date
TimeABC = Now + TimeSerial(0, 0, 5)

Application.OnTime TimeABC, "'" & ThisWorkbook.Name & "'!abc"
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom