Chặn Alert Save khi thoát Excel

Liên hệ QC

sealand

Thành viên gạo cội
Tham gia
16/5/08
Bài viết
4,883
Được thích
7,688
Giới tính
Nam
Nghề nghiệp
Kế Toán
Mình muốn hỏi khi thoát Excel bằng câu lệnh VBA:
Application.Quit hay ActiveWorkbook.Close
Excel luôn hiện Msgbox yêu cầu lưu. Mình muốn Excel không hiện Msgbox này mà cứ thoát có lưu và cứ thoát không lưu thì làm thế nào. Mong nhận đwợc hướng dẫn của các bạn. Cảm ơn.
 
Tự Lưu:
PHP:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.Quit
End Sub

Khỏi Lưu:
PHP:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
Application.Quit
End Sub
Cả hai câu lệnh này điều đặt trong ThisWorkbook chứ không phải Module đâu!
Nếu muốn đặt trong Code của Form thì bỏ dòng đâu đi nha!
Thân.
 
Upvote 0
Cám ơn bạn, mình đặt trên form login khi sai password thì đóng lại nhưng nó lại hiện Alert. Nếu vậy chỉ việc Cancel thì hỏng hết. Nếu trên Form mà bỏ đi 2 dòng bạn ghi chú thì nó vẫn hiện Alert vì mình đang viết như vậy.
Rất vui được bạn chỉ dẫn.

P/S: Vấn đề ở chỗ Application.DisplayAlerts = False OK
 
Lần chỉnh sửa cuối:
Upvote 0
Chỉ bạn thêm 1 cái mình biết nữa nè!
Là cách khóa nút lệnh Exit màu đỏ! Bạn xem file sẽ hiểu!
Nhưng có 1 điều khác mình được biết, là không có cách nào bảo mật được file của Excel cả bạn. Chỉ có tác dụng với những nhân viên biết ít kiến thức về máy tính thôi! Nên bạn đừng quá tin tưởng vào cái ổ khóa của mình nha! Kẻo lại thất vọng tràn trề đó!
Thân.
 

File đính kèm

Upvote 0
Một cách của Tedaynui,

Mã:
Sub Auto_Close()

    On Error GoTo ErrorHandler

    Call ClearUserPass 'Xóa người dùng trong danh sách trước khi xóa
    Call DeleteMenuAll(False, True, True) 'Xóa các menu
    Call DestroyConnection 'Đóng kết nối với CSDL

    'Nhằm làm cho Excel tưởng là đã Save rồi
    'Nên khi đóng lại sẽ không hỏi nữa
    Application.Workbooks(mcsWbName).Saved = True
    Application.Workbooks(mcsWbName).Close

ErrorExit:

    Exit Sub

ErrorHandler:

    If bCentralErrorHandler(mcsSubMenu, "Auto_Close") Then
        Stop
        Resume
    Else
        Resume ErrorExit
    End If

End Sub

Cách này chỉ làm khi chúng ta muốn không cho người dùng lưu những gì họ đã thực hiện trên file Excel của mình.

Lê Văn Duyệt
 
Upvote 0
Web KT

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

Back
Top Bottom