Note: The other languages of the website are Google-translated. Back to English

Làm cách nào để lưu và đóng sổ làm việc sau khi không hoạt động trong một khoảng thời gian nhất định?

Trong một số trường hợp, bạn có thể vô tình đóng sổ làm việc khi bận việc khác trong thời gian dài, điều này có thể làm mất một số dữ liệu quan trọng trong sổ làm việc. Có thủ thuật nào để tự động lưu và đóng sổ làm việc nếu bạn đã tắt nó trong một khoảng thời gian nhất định không?

Tự động lưu và đóng sổ làm việc sau khi không hoạt động trong một khoảng thời gian nhất định với VBA

mũi tên màu xanh bong bóng bên phải Tự động lưu và đóng sổ làm việc sau khi không hoạt động trong một khoảng thời gian nhất định với VBA

Không có hàm tích hợp sẵn trong Excel để giải quyết vấn đề này, nhưng tôi có thể giới thiệu một mã macro có thể giúp bạn lưu và đóng sổ làm việc sau khi không hoạt động trong một thời gian nhất định.

1. Bật sổ làm việc bạn muốn tự động lưu và đóng sau khi không hoạt động trong một vài giây nhất định, và nhấn Alt + F11 chìa khóa để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. nhấp chuột Chèn > Mô-đun để tạo ra một Mô-đun và dán mã bên dưới vào nó. Xem ảnh chụp màn hình:

Dim CloseTime As Date
Sub TimeSetting()
    CloseTime = Now + TimeValue("00:00:15")
    On Error Resume Next
    Application.OnTime EarliestTime:=CloseTime, _
      Procedure:="SavedAndClose", Schedule:=True
End Sub
Sub TimeStop()
    On Error Resume Next
    Application.OnTime EarliestTime:=CloseTime, _
      Procedure:="SavedAndClose", Schedule:=False
 End Sub
Sub SavedAndClose()
    ActiveWorkbook.Close Savechanges:=True
End Sub

 

doc lưu sổ làm việc đóng sau khi không hoạt động 1

3. Sau đó trong Trình khám phá dự án ngăn, nhấp đúp Sổ làm việc nàyvà dán mã bên dưới vào tập lệnh bên cạnh. Xem ảnh chụp màn hình:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call TimeStop
End Sub

Private Sub Workbook_Open()
    Call TimeSetting
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
   Call TimeStop
   Call TimeSetting
End Sub

 

doc lưu sổ làm việc đóng sau khi không hoạt động 2

4. Nhấp đúp vào mô-đun bạn đã chèn ở bước 2 và nhấn F5 phím để chạy mã. Xem ảnh chụp màn hình:
doc lưu sổ làm việc đóng sau khi không hoạt động 3

5. Sau đó, sau 15 giây, có một hộp thoại hiện ra để nhắc bạn lưu sổ làm việc và nhấp vào để lưu và đóng sổ làm việc.
doc lưu sổ làm việc đóng sau khi không hoạt động 4

Lời khuyên:

(1) Trong mã đầu tiên, bạn có thể thay đổi thời gian không hoạt động thành thời gian khác trong chuỗi này: Now + TimeValue ("00:00:15")

(2) Nếu bạn chưa bao giờ lưu sổ làm việc trước đây, Save As hộp thoại sẽ xuất hiện trước tiên và yêu cầu bạn lưu nó.
doc lưu sổ làm việc đóng sau khi không hoạt động 5


tốt Bảo vệ trang tính

Kutools cho Excel's Bảo vệ trang tính chức năng có thể nhanh chóng bảo vệ nhiều trang tính hoặc toàn bộ sổ làm việc cùng một lúc.
doc bảo vệ nhiều trang tính

Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (11)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Đoạn mã trên không hoạt động khi một ô đang hoạt động. Đó là

1. nhập giá trị vào ô (không nhấn Enter hoặc tab)

2. thu nhỏ excel.

Trong trường hợp này, mã không hoạt động.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Nếu bạn đang làm việc trong một sổ làm việc riêng biệt khi đạt đến thời gian đóng thì nó sẽ đóng sổ làm việc đó chứ không phải sổ làm việc không hoạt động. Điều này có thể được giải quyết bằng cách điều chỉnh mã thành:

Giảm thời gian đóng theo ngày
Làm mờ WKB dưới dạng chuỗi
Sub TimeSetting ()
WKB = ActiveWorkbook.Name
CloseTime = Now + TimeValue ("00:00:15")
On Error Resume Next
Application.OnTime EarnedTime: = CloseTime, _
Thủ tục: = "SavedAndClose", Lịch biểu: = Đúng
End Sub
Sub TimeStop ()
On Error Resume Next
Application.OnTime EarnedTime: = CloseTime, _
Thủ tục: = "SavedAndClose", Lịch biểu: = Sai
End Sub
Sub SavedAndClose ()
Workbooks (WKB). Đóng Savechanges: = True
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đa ghi chu điêu tương đương. Và tìm thấy giải pháp tương tự :-)
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Đôi khi tôi gặp phải "Lỗi thời gian chạy" khi mở sổ làm việc có mã này được tích hợp sẵn. Dù sao để viết mã này tốt hơn để nó ổn định hơn?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
cảm ơn tuyệt vời
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
xin chào tôi muốn chèn mã này vào một mã khác như mã hết hạn với mã này làm thế nào tôi có thể làm gì ....?
mã là ... đang theo dõi
Private Sub Workbook_Open ()

Dim exdate As Date
Dim i dưới dạng số nguyên

'sửa đổi các giá trị cho ngày hết hạn ở đây !!!
anul = 2019 'năm
luna = 5 'tháng
ziua = 16 'ngày

exdate = DateSerial (anul, luna, ziua)

If Date> exdate Then
MsgBox ("Ứng dụng" & ThisWorkbook.Name & "đã hết hạn!" & VbNewLine & vbNewLine _
& "Ngày thiết lập hết hạn là:" & exdate & ":)" & vbNewLine & vbNewLine _
& "Liên hệ với Quản trị viên để gia hạn phiên bản!"), VbCritical, ThisWorkbook.Name

deadline_file = ThisWorkbook.Path & "\" & ThisWorkbook.Name

Về lỗi GoTo ErrorHandler
Với Workbooks (ThisWorkbook.Name)
Nếu .Path <> "" Thì

.Saved = True
.ChangeFileAccess xlReadOnly

Diệt tệp tin đã hết hạn sử dụng

'lấy tên của addin nếu nó là addin và addin unistall
If Application.Version> = 12 Then
i = 5
Khác: i = 4
Cuối Nếu

Nếu Đúng (ThisWorkbook.Name, i) = ".xlam" Hoặc Đúng (ThisWorkbook.Name, i) = ".xla" Thì
wbName = Left (ThisWorkbook.Name, Len (ThisWorkbook.Name) - i)
'gỡ cài đặt addin nếu nó được cài đặt
If AddIns (wbName) .Installed Then
AddIns (wbName) .Installed = False
Cuối Nếu
Cuối Nếu

.Gần

Cuối Nếu
Kết thúc với

Thoát Sub

Cuối Nếu

'MsgBox ("Bạn còn" & ngày xuất hiện - Ngày & "Còn lại ngày")
Thoát Sub

Trình xử lý lỗi:
MsgBox "Không thể xóa tệp .."
Thoát Sub

End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Nếu bạn đang làm việc trong một sổ làm việc riêng biệt khi đạt đến thời gian đóng thì nó sẽ đóng sổ làm việc đó chứ không phải sổ làm việc không hoạt động. Điều này có thể được giải quyết bằng cách điều chỉnh mã thành: - đã sửa và kiểm tra từ nhận xét bên dưới - sử dụng mã này:

Nhập vào "Sổ làm việc này"

Private Sub Workbook_BeforeClose (Cancel As Boolean)
Thời gian dừng cuộc gọi
End Sub
Private Sub Workbook_Open ()
Thời gian cuộc gọi
End Sub
Private Sub Workbook_SheetChange (ByVal Sh As Object, ByVal Target As Range)
Thời gian dừng cuộc gọi
Thời gian cuộc gọi
End Sub


Nhập vào "mô-đun":

Giảm thời gian đóng theo ngày
Sub TimeSetting ()
CloseTime = Now + TimeValue ("00:10:00")
On Error Resume Next
Application.OnTime EarnedTime: = CloseTime, _
Thủ tục: = "SavedAndClose", Lịch biểu: = Đúng
End Sub
Sub TimeStop ()
On Error Resume Next
Application.OnTime EarnedTime: = CloseTime, _
Thủ tục: = "SavedAndClose", Lịch biểu: = Sai
End Sub
Sub SavedAndClose ()
ThisWorkbook.Close Savechanges: = True
End Sub


bạn có thể thay đổi cài đặt thời gian bằng cách thay đổi CloseTime = Now + TimeValue ("00:10:00") - cài đặt này được đặt thành 10 phút, thay đổi ("00:10:00") thành bất kỳ thời gian nào bạn muốn và nó hoạt động.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi không chắc điều gì đã xảy ra nhưng giải pháp này không còn hoạt động nữa. Đây là bản sửa lỗi cho giải pháp này phù hợp với tôi:

`` '
Đặt lại độ sángĐếm bao lâu

Public Sub Workbook_Open ()
On Error Resume Next
Đặt xWB = ThisWorkbook
đặt lạiCount = 0
End Sub

Private Sub Workbook_SheetChange (ByVal Sh As Object, ByVal Target As Range) Khi Lỗi Tiếp tục
Xóa và làm lại
End Sub

Đặt lại phụ () Khi có lỗi Tiếp tục tiếp theo
xCloseTime tĩnh
Nếu resetCount <> 0 Thì
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule: = False
resetCount = resetCount + 1
xCloseTime = DateAdd ("n", 15, Now)
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule: = True

Khác
resetCount = resetCount + 1
xCloseTime = DateAdd ("n", 15, Now)
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule: = True
Cuối Nếu
End Sub
`` '
Điều này đang sử dụng cùng một SaveWork1 As:
`` `` Sub SaveWork1 ()
Application.DisplayAlerts = Sai
ThisWorkbook.Save
ThisWorkbook.Close

Ứng dụng.DisplayAlerts = Đúng
End Sub

`` '
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều đó thật tuyệt. Bất kỳ mẹo nào về cách thêm hộp thông báo bật lên sẽ cảnh báo người dùng trang tính sắp đóng và cung cấp cho họ tùy chọn để đặt lại bộ hẹn giờ?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Khi tôi không muốn chỉnh sửa và tôi chỉ muốn tham khảo ý kiến, tệp vẫn đóng. Nó không nên đóng lại. Nên bắt đầu lại đếm khi tôi chọn ô. Giải pháp là gì?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Khi tôi không muốn chỉnh sửa và tôi chỉ muốn tham khảo ý kiến, tệp vẫn đóng. Nó không nên đóng lại. Nên bắt đầu lại đếm khi tôi chọn ô. Giải pháp là gì?
Không có bình luận nào được đăng ở đây
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL