Code chống xóa một sheet trong workbook

  • Thread starter Thread starter nk_vk
  • Ngày gửi Ngày gửi
Liên hệ QC

nk_vk

Thành viên mới
Tham gia
24/4/09
Bài viết
10
Được thích
0
Các bạn làm ơn cho hỏi muốn một macro tự chạy hoặc ở chế độ thường trực thì làm thế nào ? Có phải viết trực tiếp vào Microsoft excel object/this workbook không ?

Giúp tôi viết đoạn code chống xóa một sheet trong workbook với. Cảm ơn nhiều !
 
To: nk_vk,
Theo link1 hoặc link2 này thì có 2 cách:

  1. Ở môi trường sử dụng bạn "Protect worksheet"
  2. Hoặc sử dụng code.

Bạn theo đường link trên để tìm hiểu.

LTN
 
Upvote 0
Đúng vậy, mình muốn một số sheet khác vẫn xóa được, nhưng chỉ một sheet chỉ định không được xoá. Giúp mình viết code với, mình loay hoay mãi mà vẫn không biết làm thế nào.
 
Upvote 0
Đúng vậy, mình muốn một số sheet khác vẫn xóa được, nhưng chỉ một sheet chỉ định không được xoá.

Ví dụ sheet bạn muốn chống xóa có tên là NoDelete:

Cách 1: Làm ẩn menu Edit/Delete sheet
Bạn gõ đoạn code sau vào sheet NoDelete (trong mục Worksheet):
Mã:
Private Sub Worksheet_Activate()
Set mymenubar = CommandBars.ActiveMenuBar
mymenubar.Controls("Edit").Controls("Delete sheet").Visible = False
End Sub

Private Sub Worksheet_Deactivate()
Set mymenubar = CommandBars.ActiveMenuBar
mymenubar.Controls("Edit").Controls("Delete sheet").Visible = True
End Sub

Cách 2: Không cho hiện menu Popup của Worksheet Tab
Mã:
Private Sub Worksheet_Activate()
CommandBars("Ply").Enabled = False
End Sub

Private Sub Worksheet_Deactivate()
CommandBars("Ply").Enabled = True
End Sub

Cách 3: Không cho lưu tập tin nếu như xóa sheet NoDelete
Bạn chèn đoạn code sau vào This WorkbookModule
Mã:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean #41; 
    Dim w 
    Set w = ActiveSheet 
    Application. ScreenUpdating = False 
    On  Error Resume Next 
    Sheets("NoDelete").Activate 
    If Err.Number = 0 Then 
        w.Activate 
        Exit Sub 
    Else 
         MsgBox "The worksheet NoDelete has been deleted, therefore this workbook may not be saved", _ 
        vbOKOnly + vbCritical, "Deleted Sheet Problem" 
        Cancel = True 
    End If 
End Sub

(Tham khảo trên ozgrid.com)

Hy vọng các đoạn code trên sẽ giúp ích cho bạn.
Thân.
 
Upvote 0
Theo hướng dẫn của bạn QuocPhong tôi đã dùng đoạn code này để ngăn chặn việc xoá sheet được chỉ định và đã đạt được yêu cầu mong muốn.
Nhưng có một phát sinh không mong muốn là hiện nay trên máy của tôi tất cả các File Excel đều Không cho hiện menu Popup của Worksheet Tab; tôi đã xoá code, tắt máy khởi động lại nhưng vẫn không được (kể cả file mới mở lần đầu).
Nhờ các bạn chỉ giúp cách khắc phục.
Thanks!
PHP:
Private Sub Worksheet_Activate()
CommandBars("Ply").Enabled = False
End Sub

Private Sub Worksheet_Deactivate()
CommandBars("Ply").Enabled = True
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom