Cho mình hỏi về phương thức Application.Ontime

Liên hệ QC

tramp

Thành viên mới
Tham gia
22/2/09
Bài viết
18
Được thích
2
Chào các bạn.
Cho mình hỏi về phương thức Application.Ontime Now + TimeSerial(0,0,1), "abc"
Câu lệnh trên là chờ sau 1 giây sẽ chạy chương trình con "abc" , nhưng nếu mình muốn chỉ chờ ít hơn 1 giây thì sao (chẵn hạn 100miligiay). ?
Nhờ các bạn chỉ giáo ?
 
Mình đã đọc bài Đo thời gian khi chạy chương trình của A. TuanVNUNI rồi. Nhưng ý mình muốn hỏi là thời gian chờ để chạy 1 chương trình con mà. Còn việc sữ dụng các hàm API thì mình mù tịch. Mong các bạn chỉ dẫn thêm ?
 
Upvote 0
Đây là cách thô nhất mà mình chỉ cho bạn, chớ bắt chước!

PHP:
Option Explicit
Sub OnTime()
 Dim Timer_ As Double
 Timer_ = Timer
 [I2] = Timer_
 Do
    If Timer > Timer_ + 0.1 Then Exit Do
 Loop
 [i4] = Timer
End Sub
 
Upvote 0
Mình đã đọc bài Đo thời gian khi chạy chương trình của A. TuanVNUNI rồi. Nhưng ý mình muốn hỏi là thời gian chờ để chạy 1 chương trình con mà. Còn việc sữ dụng các hàm API thì mình mù tịch. Mong các bạn chỉ dẫn thêm ?
Bạn xem file mẫu mình là nha.
PHP:
Public Dunglai As Boolean

Sub tg1()
If Dunglai = True Then Exit Sub
[A1:a3].Font.ColorIndex = 1
Calculate
Application.OnTime Now + TimeValue("00:00:01"), "tg2"
End Sub

Sub tg2()
If Dunglai = True Then Exit Sub
[A1:a3].Font.ColorIndex = 5
Calculate
Application.OnTime Now + TimeValue("00:00:01"), "tg1"
End Sub

Sub Dung()
Dunglai = True
End Sub

Sub Chay()
Dunglai = False
Call tg1
End Sub
 

File đính kèm

  • Ontime - Capnhatdulieu.xls
    33.5 KB · Đọc: 184
Upvote 0
Chào các bạn.
Cho mình hỏi về phương thức Application.Ontime Now + TimeSerial(0,0,1), "abc"
Câu lệnh trên là chờ sau 1 giây sẽ chạy chương trình con "abc" , nhưng nếu mình muốn chỉ chờ ít hơn 1 giây thì sao (chẵn hạn 100miligiay). ?
Nhờ các bạn chỉ giáo ?

Mình đã đọc bài Đo thời gian khi chạy chương trình của A. TuanVNUNI rồi. Nhưng ý mình muốn hỏi là thời gian chờ để chạy 1 chương trình con mà. Còn việc sữ dụng các hàm API thì mình mù tịch. Mong các bạn chỉ dẫn thêm ?



Trong VBA, các hàm và thủ tục của nó chỉ có thể cập nhật thời gian ít nhất sau mỗi một giây! Như hàm Now(), Timer(), Application.OnTime().

Muốc đo hay thực thi các lệnh nhỏ hơn 1 giây (mili giây) thì hãy làm theo cách tôi - sử dụng hàm API. Cũng là vài dòng lập trình không hề khó, chỉ là mức ứng dụng hàm sao phải phân biệt VBA và API. Hãy thay đổi tư duy nếu muốn làm được nhiều thứ tốt hơn.

Bạn tham khảo bài này:
http://www.giaiphapexcel.com/forum/showthread.php?t=19800

(Lời nói có thể khó nghe nhưng là thiện chí muốn bạn thay đổi nếu muốn kết quả ứng dụng tốt hơn.)
 
Upvote 0
Trong VBA, các hàm và thủ tục của nó chỉ có thể cập nhật thời gian ít nhất sau mỗi một giây! Như hàm Now(), Timer(), Application.OnTime().

Muốc đo hay thực thi các lệnh nhỏ hơn 1 giây (mili giây) thì hãy làm theo cách tôi - sử dụng hàm API. Cũng là vài dòng lập trình không hề khó, chỉ là mức ứng dụng hàm sao phải phân biệt VBA và API. Hãy thay đổi tư duy nếu muốn làm được nhiều thứ tốt hơn.

Bạn tham khảo bài này:
http://www.giaiphapexcel.com/forum/showthread.php?t=19800

Cám ơn bạn nhiều mình sẽ nghiên cứu lại file này.
 
Upvote 0
Các anh cho em hỏi là khi em dùng
Application
.OnTime Now + TimeValue("00:00:01"), "done"
thì máy báo lỗi là
"Method 'OnTime' of object'_Application failed"
xin hỏi cách sửa như thế nào ạ?
 
Upvote 0
Theo mình thì với các lệnh chạy mà thời gian chờ ít hơn 1s thì mình nên dùng application.wait
Ví dụ: Application.Wait (Now + 0.00001)
 
Upvote 0
Web KT

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

Back
Top Bottom