Tắt file Excel khi không có tác động vào file trong vòng 5 phút

Liên hệ QC

bantrang7lan

Thành viên mới
Tham gia
25/2/22
Bài viết
5
Được thích
0
Dạ em xin chào anh chị.
E muốn viết một code VBA gắn vào file Excel, nếu mà mở file lên thao tác, nhưng nếu không thao tác vào file đó trong vòng 5 phút (có thể có tác động vào các file excel khác đang mở), thì file chứa code vba đó tự tắt và lưu.
Mong anh chị giúp em với ạ! Em cám ơn!
 
Yêu cầu của em ko thực hiện được hả anh chị?
 
Upvote 0
Dạ em xin chào anh chị.
E muốn viết một code VBA gắn vào file Excel, nếu mà mở file lên thao tác, nhưng nếu không thao tác vào file đó trong vòng 5 phút (có thể có tác động vào các file excel khác đang mở), thì file chứa code vba đó tự tắt và lưu.
Mong anh chị giúp em với ạ! Em cám ơn!

Khi mở file lên sẽ kích chạy bộ đếm giờ, nếu đếm tới 5 phút thì tắt. Khi có sự kiện OnChange thì reset bộ điếm giờ lại =0.
 
Upvote 0
Dạ em mới tìm hiểu VBA nên ko rành lắm ạ, có thể cho em xin một đoạn code đc ko ạ, em cảm ơn nhiều vì đã giúp đỡ!
 
Upvote 0
Dạ em mới tìm hiểu VBA nên ko rành lắm ạ, có thể cho em xin một đoạn code đc ko ạ, em cảm ơn nhiều vì đã giúp đỡ!
Bạn mới tìm hiểu mà nghiên cứu cái lằng nhằng ghê á chi cho tốn nhiều công sức vậy. Kiếm cái nào dễ tiêu hơn học trước phải hay hơn không?
 
Upvote 0
Dạ em mới tìm hiểu VBA nên ko rành lắm ạ, có thể cho em xin một đoạn code đc ko ạ, em cảm ơn nhiều vì đã giúp đỡ!

- Code trong standard module:

Mã:
Option Explicit

Public Const ThoiGianDemNguoc = 1 'Phút
Public timeRunCheck As Double
Public resetTime As Double

Sub CheckTime()
    timeRunCheck = Now + TimeSerial(0, ThoiGianDemNguoc, 0)
    If Now - resetTime >= ThoiGianDemNguoc / (24 * 60) Then 'qui doi phút
        Call SaveCloseWB
        ThisWorkbook.Close , True
    Else
        Application.OnTime earliesttime:=timeRunCheck, procedure:="CheckTime", schedule:=True
    End If

End Sub

Public Sub SaveCloseWB()
    On Error Resume Next
    Application.OnTime earliesttime:=timeRunCheck, procedure:="CheckTime", schedule:=False
End Sub

- Code cho Workbook:

Mã:
Option Explicit

Private Sub Workbook_Open()
    resetTime = Now
    Call CheckTime
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    resetTime = Now
End Sub

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    resetTime = Now
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    resetTime = Now
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    resetTime = Now
End Sub
 

File đính kèm

  • TuDongTatExcel.xlsb
    16.9 KB · Đọc: 14
Upvote 0
- Code trong standard module:

Mã:
Option Explicit

Public Const ThoiGianDemNguoc = 1 'Phút
Public timeRunCheck As Double
Public resetTime As Double

Sub CheckTime()
    timeRunCheck = Now + TimeSerial(0, ThoiGianDemNguoc, 0)
    If Now - resetTime >= ThoiGianDemNguoc / (24 * 60) Then 'qui doi phút
        Call SaveCloseWB
        ThisWorkbook.Close , True
    Else
        Application.OnTime earliesttime:=timeRunCheck, procedure:="CheckTime", schedule:=True
    End If

End Sub

Public Sub SaveCloseWB()
    On Error Resume Next
    Application.OnTime earliesttime:=timeRunCheck, procedure:="CheckTime", schedule:=False
End Sub

- Code cho Workbook:

Mã:
Option Explicit

Private Sub Workbook_Open()
    resetTime = Now
    Call CheckTime
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    resetTime = Now
End Sub

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    resetTime = Now
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    resetTime = Now
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    resetTime = Now
End Sub
Dạ em đã test, nhưng file khi tắt nó vẫn hỏi lưu hay không ạ! Em muốn nó tự động lưu luôn được không ạ?
 

File đính kèm

  • Test.xlsm
    15.5 KB · Đọc: 6
Upvote 0
Dạ do công việc của em cần ạ!
Dạ em đã test, nhưng file khi tắt nó vẫn hỏi lưu hay không ạ! Em muốn nó tự động lưu luôn được không ạ?
Công việc này chắc là mở mấy chục file một lúc xong không biết file nào làm hay không để tắt nó à bạn?
Thôi thì mình không làm được đã đành nhưng chưa biết công việc như thế nào mà cần thiết phải đến mức phải vậy nên tò mò, bạn không muốn trả lời thì có thể bỏ qua.
 
Upvote 0
Dạ em đã test, nhưng file khi tắt nó vẫn hỏi lưu hay không ạ! Em muốn nó tự động lưu luôn được không ạ?
À trong code tôi có code cho vụ tự động lưu mà để sai vị trí tham số:
Sửa:
Mã:
Call SaveCloseWB
ThisWorkbook.Close SaveChanges:=True
 
Upvote 0
Web KT

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

Back
Top Bottom