Code để delay , nhưng vẫn thao tác được trên bảng tính

Liên hệ QC

vn8690

Thành viên mới
Tham gia
11/3/13
Bài viết
36
Được thích
0
Chào tất cả mọi người
có vấn đề này mong các cao nhân chỉ giúp
mình tạo 1 vòng lặp
dùng lệnh
application.wait now() + timevalue("00:00:02")
hay sleep , delay
tất cả sau khi ấn chạy thì không thể sử dụng bảng tính làm việc khác
nên xin hỏi mọi người có cách nào tương ứng như sleep , wait mà vẫn dùng được bảng tính không ah ?
để cho nó tự chạy ,sau đó mình làm việc khác được .
thêm vào đó có thể cho nó chạy trên UserForm không ah ?
rất mong nhận được sự chỉ bảo của mọi ngừoi
Chi tiết xin check file đính kèm
Xin cảm ơn
 

File đính kèm

  • test20200511.xlsm
    28.4 KB · Đọc: 5
Mở 2 cửa sổ excel khác nhau
1/ một để chạy code file hiện hành
2/ Một để mở file khác và làm việc
 
Upvote 0
Bắt đầu từ cửa sổ desktop bạn click vào biểu tượng Excel mở ra 1 file excel chạy code
Về cửa sổ desktop bạn click vào biểu tượng Excel mở ra 1 file khác
Không được bạn ơi
mình nhớ đọc đâu đó thầy "ndu" có bảo mấy code wait với delay nếu dùng thì không dùng được cái gì hết cho đến khi nó chạy xong thì phải .
có cách nào khắc phục được không nhỉ ?
(@$%@
 
Upvote 0
Không được bạn ơi
mình nhớ đọc đâu đó thầy "ndu" có bảo mấy code wait với delay nếu dùng thì không dùng được cái gì hết cho đến khi nó chạy xong thì phải .
có cách nào khắc phục được không nhỉ ?
(@$%@
Không biết bạn thực hiện như thế nào
Tôi đã tải file của bạn về chạy code tudong vong lap và vẫn chạy bình thường
Bạn lưu ý: Mở 2 cửa sổ excel rồi thì mới bắt đầu chạy code nhé
Chứ đang chạy code thì không thể về màn hình desktop để mở cửa sổ excel đâu
 
Upvote 0
Thử vận dụng OnTime xem.
Mã:
Sub BatDau()
Range("A3").Value = Range("A3").Value + 1
Macro0
End Sub
Private Sub Macro0()
    Range("C4:C7").Font.Color = vbWhite
    Application.OnTime Now() + TimeValue("00:00:02"), "Macro1"
End Sub
Private Sub Macro1()
    Range("C4").Font.Color = vbBlack
    Application.OnTime Now() + TimeValue("00:00:02"), "Macro2"
End Sub
Private Sub Macro2()
    Range("C5").Font.Color = vbBlack
    Application.OnTime Now() + TimeValue("00:00:02"), "Macro3"
End Sub
Private Sub Macro3()
    Range("C6").Font.Color = vbBlack
    Application.OnTime Now() + TimeValue("00:00:02"), "Macro4"
End Sub
Private Sub Macro4()
    Range("C7").Font.Color = vbBlack
    If Range("A3").Value <> "" Then Application.OnTime Now() + TimeValue("00:00:02"), "BatDau"
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Thử vận dụng OnTime xem.
Mã:
Sub BatDau()
Range("A3").Value = Range("A3").Value + 1
Macro0
End Sub
Private Sub Macro0()
    Range("C4:C7").Font.Color = vbWhite
    Application.OnTime Now() + TimeValue("00:00:02"), "Macro1"
End Sub
Private Sub Macro1()
    Range("C4").Font.Color = vbBlack
    Application.OnTime Now() + TimeValue("00:00:02"), "Macro2"
End Sub
Private Sub Macro2()
    Range("C5").Font.Color = vbBlack
    Application.OnTime Now() + TimeValue("00:00:02"), "Macro3"
End Sub
Private Sub Macro3()
    Range("C6").Font.Color = vbBlack
    Application.OnTime Now() + TimeValue("00:00:02"), "Macro4"
End Sub
Private Sub Macro4()
    Range("C7").Font.Color = vbBlack
    If Range("A3").Value <> "" Then Application.OnTime Now() + TimeValue("00:00:02"), "BatDau"
End Sub
cám ơn bạn đã giúp đỡ
code chạy tuyệt vời dù chả thấy while true hay doevnt :drinks:
vấn đề wait và sleep giải quyết gọn gàng đẹp đẽ .
Tuy nhiên có 1 điểm nữa bạn có thể chỉ giúp mình được không ?
đó là mình quên không trỏ đến workbook đó
nên mở file mới là nó chạy luôn trên sheets 1 của file mới
Giờ có cách nào trỏ ngầm đến không nhỉ ?
mình trỏ đến workbook bằng cách Windows("test20200511.xlsm").Activate
tuy nhiên mở workbook khác cái nó lại tự nhảy về workbook test20200511 .
mình thao tác trên workbook khác không được .
xin cảm ơn
Sub BatDau()
Windows("test20200511.xlsm").Activate
Sheets(1).Range("A3").Value = Range("A3").Value + 1
Macro0
End Sub
Private Sub Macro0()
Windows("test20200511.xlsm").Activate
Range("C4:C7").Font.Color = vbWhite
Application.OnTime Now() + TimeValue("00:00:02"), "Macro1"
End Sub
Private Sub Macro1()
Windows("test20200511.xlsm").Activate
Range("C4").Font.Color = vbBlack
Application.OnTime Now() + TimeValue("00:00:02"), "Macro2"
End Sub
Private Sub Macro2()
Windows("test20200511.xlsm").Activate
Range("C5").Font.Color = vbBlack
Application.OnTime Now() + TimeValue("00:00:02"), "Macro3"
End Sub
Private Sub Macro3()
Windows("test20200511.xlsm").Activate
Range("C6").Font.Color = vbBlack
Application.OnTime Now() + TimeValue("00:00:02"), "Macro4"
End Sub
Private Sub Macro4()
Windows("test20200511.xlsm").Activate
Range("C7").Font.Color = vbBlack
If Range("A3").Value <> "" Then Application.OnTime Now() + TimeValue("00:00:02"), "BatDau"
End Sub
 
Upvote 0
Chỗ nào là Range thì bạn sửa thành Sheet1.Range
 
Upvote 0
Chỗ nào là Range thì bạn sửa thành Sheet1.Range
cám ơn bạn nhé
chạy rồi :drinks:
Bài đã được tự động gộp:

Không biết bạn thực hiện như thế nào
Tôi đã tải file của bạn về chạy code tudong vong lap và vẫn chạy bình thường
Bạn lưu ý: Mở 2 cửa sổ excel rồi thì mới bắt đầu chạy code nhé
Chứ đang chạy code thì không thể về màn hình desktop để mở cửa sổ excel đâu
cám ơn bạn đã chỉ giúp nhé
:drinks:
 
Upvote 0
Web KT
Back
Top Bottom