vấn đề tự động lưu và thoát ct sau 1 khoảng thời gian định sẵn? (1 người xem)

Liên hệ QC

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

hoatinhyeu862000

Thành viên hoạt động
Tham gia
19/7/13
Bài viết
135
Được thích
3
em có viết 1 đoạn code voi chức năng tự động lưu và thoát sau 1 khoảng thời gian định sẵn tuy nhiên sau khi em đặt vào thiswb no khong chay xin anh chi giup do?!
 

File đính kèm

Mình chưa hiểu lắm ý của bạn "Tự động lưu và thoát sau 1 khoảng thời gian định sẵn..." là thế nào, xem code của bạn trong file là:
PHP:
Private Sub tudongluu_thoat(Cancel As Boolean)
 Dim iCount As Long, iCounter As Long
    For iCount = 0 To 600
        iCounter = iCount
        Sleep 20
    Application.DisplayAlerts = False
    ThisWorkbook.Save
    Application.Quit
End Sub
mình sẽ hiểu là lúc bạn tắt file sẽ kích hoạt code tạm dừng 20s và lưu rồi thoát file, code bạn viết thiếu lệnh Next để kết thúc vòng For, và khi chạy mình thấy hiện thông báo lỗi ở dòng Sleep 20
Mình sửa lại code của bạn như sau:
PHP:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim iCount As Long, iCounter As Long
    For iCount = 0 To 600
        iCounter = iCount
    Next
        Sleep 20000 'delay in milliseconds  

    Application.DisplayAlerts = False
    ThisWorkbook.Save
    Application.Quit
End Sub
và thêm module với code sau:
PHP:
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'For 32 Bit Systems
Bạn kiểm tra lại xem có hợp lý không nhé.
 

File đính kèm

Upvote 0
Mình chưa hiểu lắm ý của bạn "Tự động lưu và thoát sau 1 khoảng thời gian định sẵn..." là thế nào, xem code của bạn trong file là:
PHP:
Private Sub tudongluu_thoat(Cancel As Boolean)
 Dim iCount As Long, iCounter As Long
    For iCount = 0 To 600
        iCounter = iCount
        Sleep 20
    Application.DisplayAlerts = False
    ThisWorkbook.Save
    Application.Quit
End Sub
mình sẽ hiểu là lúc bạn tắt file sẽ kích hoạt code tạm dừng 20s và lưu rồi thoát file, code bạn viết thiếu lệnh Next để kết thúc vòng For, và khi chạy mình thấy hiện thông báo lỗi ở dòng Sleep 20
Mình sửa lại code của bạn như sau:
PHP:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim iCount As Long, iCounter As Long
    For iCount = 0 To 600
        iCounter = iCount
    Next
        Sleep 20000 'delay in milliseconds  

    Application.DisplayAlerts = False
    ThisWorkbook.Save
    Application.Quit
End Sub
và thêm module với code sau:
PHP:
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'For 32 Bit Systems
Bạn kiểm tra lại xem có hợp lý không nhé.
Cảm ơn bác đúng là em viết sai so với chính ý của em(em đang học bập bõm) ý của em là thế này ạ:
Em mở 1 file excel lên làm việc tuy nhiên có thể đi đâu đột xuất mà quên k tắt file đó
giờ em muốn có 1 cái code để mặc định sau 10p chẳng hạn hoặc tùy mình đặt nếu k có bất kỳ tác động nào nó sẽ tự động lưu và thoát file đó ạ.
Mong anh tiếp tục chỉ giúp
 
Upvote 0
Trong ThisWorkbook bạn thêm code này:
PHP:
Private Sub Workbook_Activate()
    Application.OnTime Now + TimeValue("00:00:30"), "TimeSaveQuit"
End Sub
=> Khi mở file thì sẽ kích hoạt code sau 30s chạy sub TimeSaveQuit
Trong Module bạn thêm sub này:
PHP:
Sub TimeSaveQuit() 
    Application.DisplayAlerts = False
    ThisWorkbook.Save
    Application.DisplayAlerts = True
    Application.Quit
End Sub

Code trên mình test tắt file sau 30s, bạn muốn tắt file sau 10' thì chỉnh lại TimeValue("00:10:00"). Code này chỉ làm được yêu cầu của bạn là mặc định tắt file sau 10'. Còn yêu cầu không có bất kỳ tác động nào thì file sẽ tự động save và quit thì mình chưa làm được. Bạn xem tham khảo thử nhé
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom