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

Làm cách nào để tự động lưu và đóng tệp Excel sau một thời gian nhàn rỗi nhất định?

Trong một số trường hợp, chẳng hạn như để tệp Excel trên đĩa dùng chung, khi người dùng vẫn đang mở tệp, những người khác không thể chỉnh sửa sổ làm việc. Vậy làm thế nào để tự động đóng tệp sau một thời gian nhàn rỗi nhất định để giảm bớt công việc của người khác? Bài viết này sẽ giúp bạn với phương pháp VBA.

Tự động lưu và đóng tệp Excel sau một thời gian nhàn rỗi nhất định với mã VBA


Tự động lưu và đóng tệp Excel sau một thời gian nhàn rỗi nhất định với mã VBA

Để tự động lưu và đóng tệp Excel sau một thời gian rỗi nhất định, vui lòng thực hiện như sau.

1. Mở sổ làm việc bạn cần để tự động lưu và đóng sổ làm việc sau một thời gian nhàn rỗi nhất định. Sau đó nhấn Khác + F11 chìa khóa với nhau để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. bên trong Microsoft Visual Basic cho các ứng dụng cửa sổ, vui lòng nhấp đúp vào Sổ làm việc này trong ngăn bên phải để mở cửa sổ Mã. Sau đó sao chép và dán mã VBA bên dưới vào cửa sổ Mã. Xem ảnh chụp màn hình:

Mã VBA 1: Tự động lưu và đóng tệp Excel sau một thời gian nhàn rỗi nhất định

Dim xTime As String
Dim xWB As Workbook

Private Sub Workbook_Open()
'Updated by Extendoffice 2019/1/20
    On Error Resume Next
    xTime = Application.InputBox("Please specify the idle time:", "KuTool For Excel", "00:00:20", , , , , 2)
    Set xWB = ActiveWorkbook
    If xTime = "" Then Exit Sub
    Reset
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    On Error Resume Next
    If xTime = "" Then Exit Sub
    Reset
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    On Error Resume Next
    If xTime = "" Then Exit Sub
    Reset
End Sub

Sub Reset()
    Static xCloseTime
    If xCloseTime <> 0 Then
        ActiveWorkbook.Application.OnTime xCloseTime, "SaveWork1", , False
    End If
    xCloseTime = Now + TimeValue(xTime)
    ActiveWorkbook.Application.OnTime xCloseTime, "SaveWork1", , True
End Sub

3. Sau đó nhấp vào Chèn > mô-đunvà sao chép và dán mã bên dưới vào cửa sổ Mô-đun. Xem ảnh chụp màn hình:

Mã VBA 2: Tự động lưu và đóng tệp Excel sau một thời gian nhàn rỗi nhất định

Sub SaveWork1()
'Updated by Extendoffice 2019/1/20
    Application.DisplayAlerts = False
    ActiveWorkbook.Save
    ActiveWorkbook.Close
    
    Application.DisplayAlerts = True
End Sub

4. Nhấn nút Khác + Q các phím đồng thời để đóng Microsoft Visual Basic cho các ứng dụng cửa sổ.

5. nhấp chuột Tập tin > Save As > Xem. Xem ảnh chụp màn hình:

6. bên trong Save As hộp thoại, vui lòng chọn một thư mục để lưu tệp, đặt tên như bạn cần trong hộp Tên tệp, chọn Sổ làm việc hỗ trợ macro Excel từ Tiết kiệm như kiểu danh sách thả xuống và cuối cùng nhấp vào Lưu cái nút. Xem ảnh chụp màn hình:

Kể từ bây giờ, mỗi khi mở sổ làm việc này, Kutools cho Excel hộp thoại sẽ bật lên. Vui lòng nhập thời gian bạn sẽ lưu và đóng sổ làm việc dựa trên, sau đó bấm vào OK .

Và sổ làm việc sẽ được lưu và đóng tự động sau thời gian nhàn rỗi được chỉ định đó. Xem ảnh chụp màn hì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 (21)
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
Xin chào Cảm ơn tải cho mã này. Chỉ một vấn đề. Dường như cố gắng đóng tất cả các sổ làm việc đang mở do đó sẽ dừng nếu một lần đóng sổ làm việc khác bị hủy hoặc không được phản hồi. bạn có bất kỳ liên hệ nào có thể khắc phục sự cố này khô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 gặp sự cố tương tự ... Tôi đã cố mở một sổ làm việc mới và nhập một số dữ liệu .... khi đến thời điểm, cả hai sổ làm việc đều bị đóng, nhưng sổ mới chưa được lưu ... Có cách nào để sửa lỗi này?
Bên cạnh đó, nó hoạt động tuyệt vời !! Cảm ơn rất nhiều!!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Gaston,
Mã đã được cập nhật để giải quyết vấn đề. Xin vui lòng có một thử. Xin lỗi vì sự bất tiện này và cảm ơn bạn đã bình luận.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Henry,
Mã đã được cập nhật để giải quyết vấn đề. Xin vui lòng có một thử. Xin lỗi vì sự bất tiện này và cảm ơn bạn đã bình luận.
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 này không hoạt động khi tập trung vào một ô cụ thể trong trang tính. Trường hợp sử dụng là khi người dùng đang nhập vào một ô và để excel mở bằng con trỏ bên trong ô.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn có tình cờ tìm được cách sửa lỗi này khô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 khuyên bạn nên xác định sổ làm việc bằng tên tệp sổ làm việc. Điều này sẽ cho phép người dùng có nhiều sổ làm việc chỉ mở và đóng sổ làm việc cụ thể cần có khóa thời gian.

Đề xuất: Đặt xwb = Workbooks (" ")
thay vì: Đặt xwb = ActiveWorkbook

Ngoài ra, thay thế tất cả các tham chiếu đến "ActiveWorkbook" thành Xwb trong mô-đun

Mã tuyệt vời nếu không.
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,
Cảm ơn bạn đã chia sẻ.
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,

Cảm ơn bạn đã đăng bản sửa đổi này - đã tìm thấy rất nhiều mã để đóng các sổ làm việc không hoạt động, nhưng tất cả chúng dường như ảnh hưởng đến một mã mà bạn không muốn đóng!

Tôi là người mới sử dụng VBA, vì vậy tôi không chắc mã sẽ hoạt động như thế nào để thay thế từ 'ActiveWorkbook' trong mô-đun. Tôi đã cố gắng thay thế từ ngữ bằng 'Xwb' nhưng điều đó không thay đổi bất cứ điều gì và tôi có thể bị mờ. Bạn có vui lòng đăng một bản sao của mã này không?

Cảm ơ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ó cách nào để thực hiện điều này để ngay cả khi bạn không ở trên trang tính như nhấp chuột qua cửa sổ khác, tông đơ vẫn sẽ đóng trang tính đó? Có vẻ như tôi phải ở lại hồ sơ để 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
nó luôn yêu cầu thời gian nhàn rỗi mỗi khi tôi mở cửa.

Tôi muốn thời gian không được hiển thị trong khi mở sổ làm việc. (nếu được yêu cầu, nó có thể được thay đổi trong VBA)
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Thay đổi dòng
xTime = Application.InputBox ("Vui lòng chỉ định thời gian nhàn rỗi:", "KuTool Cho Excel", "00:00:20",,,,, 2)


đến

xTime = "00:00:20"


nó sẽ không hỏi
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có cách nào để thay đổi điều này để nó nhắc người dùng lưu / đóng tệp, thay vì tự động lưu và đóng tệp không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào. Tôi cần đặt bảng tính được chia sẻ của mình trên mạng văn phòng thành tự động lưu và đóng khi tôi hoàn thành việc đó trong ngày. Chỉ có sếp của tôi và tôi được cho là thực hiện và lưu các thay đổi, nhưng một số người quản lý xem nó hàng ngày.
Tôi cần có thể để nó tự động lưu cho hai chúng tôi, trong khi không lưu cho những người dùng khác. Điều này có khả thi không? Tôi có thể đặt macro chỉ hoạt động cho chúng tôi không? Hay nó sẽ ảnh hưởng đến tất cả mọi người?
Tôi biết cách bảo vệ trang tính, nhưng tôi không thể làm điều đó, vì họ muốn thỉnh thoảng có thể thực hiện một số thay đổi tạm thời. Tôi chỉ cần có thể hạn chế tính năng tự động lưu cho những người dùng cụ thể.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
(Thở dài.)
Hãy xem mã.
Nếu bạn đặt VBA này vào Excel001.xlsm, nhưng khi thời gian chờ xảy ra, bạn có Excel002.xlsm là sổ làm việc "hoạt động", thì nó thực sự sẽ đóng tệp Excel đó, thay vì tệp bạn đã đặt VBA vào .
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
nhìn bên dưới, nhận xét của Mark: "Tôi khuyên bạn nên xác định sổ làm việc bằng tên tệp sổ làm việc. Điều này sẽ cho phép người dùng có nhiều sổ làm việc mở và đóng chỉ sổ làm việc cụ thể cần có khóa thời gian.

Đề xuất: Đặt xwb = Workbooks (" ")
thay vì: Đặt xwb = ActiveWorkbook

Ngoài ra, thay thế tất cả các tham chiếu đến "ActiveWorkbook" thành Xwb trong mô-đun

Mã tuyệt vời nếu không. "
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào ông, làm cách nào để xem đếm ngược?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào ông, làm cách nào để xem đếm ngược?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Perdonen, si se pudiera modificar el código o adaptarlo para que reactcione con formularios (UserForm), porque solo Reaciona al estar activo en las celdas pero no en los formularios, gracias
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 Moises Peraza,
UserForm không ảnh hưởng đến việc sử dụng mã VBA. Bạn có thể mô tả rõ hơn vấn đề mà bạn gặp phải.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Gracias bởi người trả lời, el securee que tengo es: le pongo de tiempo de inactividad 2 phút. En el momento de trabajar con formularios (ingresar Información del cliente), pasado ese tiempo me cierra o me tira el mensaje que se cerrara, espero darme a entender
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