Giúp code Application.Ontime chỉ trong File có code (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

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