Code không xóa được dữ liệu khi Protection (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

saomai6692

Thành viên hoạt động
Tham gia
10/8/12
Bài viết
120
Được thích
20
Em kính chào các anh, chị !
Em đã nhờ các anh chị viết đoạn code này trên diễn đàn GPE, nó chạy rất tốt, tuy nhiên khi sử dụng, em Protection cho dữ liệu thì nó báo lỗi và không xóa được. Em nhờ các anh chị viết thêm, sao cho nó vẫn tiếp tục xóa ngay cả khi Protection. Nếu được thì xóa hết dữ liệu trong tất cả các Sheet bằng một câu lệnh code nào đó. Trân trọng cảm ơn.
 

File đính kèm

Câu hỏi hay nhưng đã Protection trong Cell dữ liệu thì sao xóa được nữa, code nó cũng là xóa bằng tay nhanh và tự động thôi mà, hơn là bạn bỏ Protection đi ?
 
Upvote 0
Em kính chào các anh, chị !
Em đã nhờ các anh chị viết đoạn code này trên diễn đàn GPE, nó chạy rất tốt, tuy nhiên khi sử dụng, em Protection cho dữ liệu thì nó báo lỗi và không xóa được. Em nhờ các anh chị viết thêm, sao cho nó vẫn tiếp tục xóa ngay cả khi Protection.
Bạn thử code này
Mã:
Sub Macro2()



ActiveSheet.Unprotect "123"
    Sheets(Array("Sheet2")).Select
    Sheets("Sheet2").Activate
    Cells.Select
    Selection.ClearContents
    ActiveSheet.Protect "123"
End Sub
 
Upvote 0
Bạn thử code này
Mã:
Sub Macro2()



ActiveSheet.Unprotect "123"
    Sheets(Array("Sheet2")).Select
    Sheets("Sheet2").Activate
    Cells.Select
    Selection.ClearContents
    ActiveSheet.Protect "123"
End Sub

Nó rút gọn như sau:

Mã:
Private Sub Workbook_Open()
  If Date >= #9/10/2012# Then
    MsgBox "Het han su dung,Hay lien he voi GPE"
     ActiveSheet.Unprotect "123"
     Sheets("Sheet2").Cells.ClearContents
    ActiveSheet.Protect "123"
  End If
End Sub
 
Upvote 0
Nhìn đoạn code gốc:
Mã:
Private Sub Workbook_Open()
  [COLOR=#ff0000]If Date >= #9/10/2012# Then[/COLOR]
    [COLOR=#ff0000]MsgBox "Het han su dung,Hay lien he voi GPE"[/COLOR]
    Sheets(Array("Sheet2")).Select
    Sheets("Sheet2").Activate
    Cells.Select
    [COLOR=#ff0000]Selection.ClearContents[/COLOR]
    '[COLOR=#ff0000]Call Killed.Activate'<---Xoa du lieu nhu xoa du lieu truc tiep[/COLOR]
  End If
 End Sub
Thấy ớn quá
-------------------------
Nó rút gọn như sau:

Mã:
Private Sub Workbook_Open()
  If Date >= #9/10/2012# Then
    MsgBox "Het han su dung,Hay lien he voi GPE"
     [COLOR=#ff0000]ActiveSheet[/COLOR].Unprotect "123"
    [COLOR=#ff0000] Sheets("Sheet2")[/COLOR].Cells.ClearContents
    [COLOR=#ff0000]ActiveSheet[/COLOR].Protect "123"
  End If
End Sub
ActiveSheet và Sheets("Sheet2") liên quan gì nhau ta
Nếu mở file mà đang Active sheet khác thì sao?
 
Upvote 0
Nhìn đoạn code gốc:
Mã:
Private Sub Workbook_Open()
  [COLOR=#ff0000]If Date >= #9/10/2012# Then[/COLOR]
    [COLOR=#ff0000]MsgBox "Het han su dung,Hay lien he voi GPE"[/COLOR]
    Sheets(Array("Sheet2")).Select
    Sheets("Sheet2").Activate
    Cells.Select
    [COLOR=#ff0000]Selection.ClearContents[/COLOR]
    '[COLOR=#ff0000]Call Killed.Activate'<---Xoa du lieu nhu xoa du lieu truc tiep[/COLOR]
  End If
 End Sub
Thấy ớn quá
-------------------------

ActiveSheet và Sheets("Sheet2") liên quan gì nhau ta
Nếu mở file mà đang Active sheet khác thì sao?
hihi, chỉ copy và sửa code trên và đưa xuống, không để ý

Mã:
Private Sub Workbook_Open()
  If Date >= #9/10/2012# Then
    MsgBox "Het han su dung,Hay lien he voi GPE"
    With Sheets("Sheet2")
      .Unprotect "123"
      .Cells.ClearContents
      .Protect "123"
    End With
  End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Em cảm ơn các anh chị,đoạn code này chạy rất tốt:
Private Sub Workbook_Open()
If Date >= #9/10/2012# Then
MsgBox "Het han su dung,Hay lien he voi GPE"
With Sheets("Sheet2")
.Unprotect "123"
.Cells.ClearContents
.Protect "123"
End With
End If
End Sub

Nhưng trong trường hợp em muốn xóa dữ liệu trong nhiều Sheet thì làm thế nào, sẽ viết tiếp được không ?
Em trân trọng cảm ơn
 
Upvote 0
Em cảm ơn các anh chị,đoạn code này chạy rất tốt:
Private Sub Workbook_Open()
If Date >= #9/10/2012# Then
MsgBox "Het han su dung,Hay lien he voi GPE"
With Sheets("Sheet2")
.Unprotect "123"
.Cells.ClearContents
.Protect "123"
End With
End If
End Sub

Nhưng trong trường hợp em muốn xóa dữ liệu trong nhiều Sheet thì làm thế nào, sẽ viết tiếp được không ?
Em trân trọng cảm ơn

Tất cả các sheet đều có pass. hay là chỉ có 1 sheet có vậy bạn?
 
Upvote 0
Em chào các anh chị
Em thưa rằng: tất cả đều có pass (trong trường hợp này em hỏi là Pass giống nhau). Em Cảm ơn
 
Upvote 0
Em chào các anh chị
Em thưa rằng: tất cả đều có pass (trong trường hợp này em hỏi là Pass giống nhau). Em Cảm ơn

Duyệt qua từng sheet là ok
Mã:
Private Sub Workbook_Open()
Dim sh As Worksheet
  If Date >= #9/10/2012# Then
    MsgBox "Het han su dung,Hay lien he voi GPE"
    For Each sh In ThisWorkbook.Sheets
        With Sheets(sh.Name)
          .Unprotect "123"
          .Cells.ClearContents
          .Protect "123"
        End With
    Next
  End If
End Sub
 
Upvote 0
Đoạn code trên nó chạy rất tốt anh chị ạ, em cảm ơn. Trong trường hợp Pass Sheet2 là 123, Pass Sheet3 là "saomai6692", và Sheet1 có Pass( nhưng không xóa). Liệu có viết được không anh chị ơi. Em trân trọng cam ơn
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Đoạn code trên nó chạy rất tốt anh chị ạ, em cảm ơn. Trong trường hợp Pass Sheet2 là 123, Pass Sheet3 là "saomai6692", và Sheet1 có Pass( nhưng không xóa). Liệu có viết được không anh chị ơi. Em trân trọng cam ơn

Nếu từng sheet có pass khác nhau thì bạn quay lại xem bài #6 mà làm nhé, ba hồi nói pass giống nhau, ba hồi là có pass khác nhau...
Còn không pass thì xóa bình thường.
 
Upvote 0
xin lỗi rất nhiều vì hỏi ngang. Nếu thêm code sau nữa vào thisworkbook thì có còn cách nào cứu được dữ liệu không bạn
thành thật xin lỗi rất nhiều ...[h=2]như anh (ndu96081631) nói thật ớn thiệt luôn...[/h]Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
Me.Save
End Sub
 
Upvote 0

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

Back
Top Bottom