Code xoá pass vùng!

Liên hệ QC

gakon_Office

Nguyễn Hoàng Nhi
Tham gia
18/9/11
Bài viết
176
Được thích
26
Xin GPE cgo em 1 code xoá pass vùng!
Xem hình đính kèm.
Em thử code này kô đc.
PHP:
Sub del()
With Sheet2
.Protection.AllowEditRanges(1).Delete
.Protection.AllowEditRanges(1).Delete
.Protection.AllowEditRanges(1).Delete
.Protection.AllowEditRanges(1).Delete
End With
End Su
 

File đính kèm

  • untitled.JPG
    untitled.JPG
    28.8 KB · Đọc: 51
Xin GPE cgo em 1 code xoá pass vùng!
Xem hình đính kèm.
Em thử code này kô đc.
PHP:
Sub del()
With Sheet2
.Protection.AllowEditRanges(1).Delete
.Protection.AllowEditRanges(1).Delete
.Protection.AllowEditRanges(1).Delete
.Protection.AllowEditRanges(1).Delete
End With
End Su
Em cũng đang quan tâm đến vấn đề này mong các chuyên gia GPE chỉ giáo.
 
Upvote 0
Xin GPE cgo em 1 code xoá pass vùng!
Xem hình đính kèm.
Em thử code này kô đc.
PHP:
Sub del()
With Sheet2
.Protection.AllowEditRanges(1).Delete
.Protection.AllowEditRanges(1).Delete
.Protection.AllowEditRanges(1).Delete
.Protection.AllowEditRanges(1).Delete
End With
End Su
Liệu có phải thiếu câu lệnh Unprotect sheet trước khi xóa không?
Bạn thử thêm câu lệnh .Unprotect "Password" vào ngay sau dòng With Sheet2 xem có được không.
Nếu bạn muốn xóa tất cả các tên vùng này thì bạn sử dụng code sau:
PHP:
Sub Test1()
    With Sheet2
        .Unprotect "gpe"
        Do While .Protection.AllowEditRanges.Count > 0
            .Protection.AllowEditRanges(1).Delete
        Loop
        .Protect "gpe"
    End With
End Sub
Còn nếu chỉ muốn xóa Password mà không xóa tên vùng thì bạn sử dụng code sau:
PHP:
Sub Test2()
    Dim i As Byte
    With Sheet2
        .Unprotect "gpe"
        For i = 1 To .Protection.AllowEditRanges.Count
            .Protection.AllowEditRanges(i).ChangePassword ""
        Next
        .Protect "gpe"
    End With
End Sub
 
Upvote 0
@ NghiaPhuc hình như muốn xóa tên hoặc xóa Password vùng AllowEditRanges thì cứ làm thôi không cần phải Unprotect đâu (tôi chưa test nếu sai thì sori nha).
 
Lần chỉnh sửa cuối:
Upvote 0
@ NghiaPhuc hình như muốn xóa tên hoặc xóa Password vùng AllowEditRanges thì cứ làm thôi không cần phải Unprotect đâu (tôi chưa test nếu sai thì sori nha).
Em đã thử rồi. Nếu không Unprotect thì sẽ báo lỗi ngay câu lệnh trong vòng For ở trên.
Error_1.png
 
Upvote 0
Liệu có phải thiếu câu lệnh Unprotect sheet trước khi xóa không?
Bạn thử thêm câu lệnh .Unprotect "Password" vào ngay sau dòng With Sheet2 xem có được không.
Nếu bạn muốn xóa tất cả các tên vùng này thì bạn sử dụng code sau:
PHP:
Sub Test1()
    With Sheet2
        .Unprotect "gpe"
        Do While .Protection.AllowEditRanges.Count > 0
            .Protection.AllowEditRanges(1).Delete
        Loop
        .Protect "gpe"
    End With
End Sub
Còn nếu chỉ muốn xóa Password mà không xóa tên vùng thì bạn sử dụng code sau:
PHP:
Sub Test2()
    Dim i As Byte
    With Sheet2
        .Unprotect "gpe"
        For i = 1 To .Protection.AllowEditRanges.Count
            .Protection.AllowEditRanges(i).ChangePassword ""
        Next
        .Protect "gpe"
    End With
End Sub
Cám ơn thầy rất nhiều!
Tuy chưa Test thử nhưng nhìn đoạn mã rất chuyên nghiệp thì chắc chắn OK rồi!
Phiền thầy có thể tạo cho em xin một ví dụ về UserForm thay đổi pass vùng không ạ?
Nghĩa là chỉ cần kích vào một nút button nào đó trên sheet hiện hành thì UserForm c ủa shee đó hiện lên hỏi điều kiện thay pass vùng.
Điều kiện là jì jì đó.
 
Upvote 0
Cám ơn thầy rất nhiều!
Tuy chưa Test thử nhưng nhìn đoạn mã rất chuyên nghiệp thì chắc chắn OK rồi!
Phiền thầy có thể tạo cho em xin một ví dụ về UserForm thay đổi pass vùng không ạ?
Nghĩa là chỉ cần kích vào một nút button nào đó trên sheet hiện hành thì UserForm c ủa shee đó hiện lên hỏi điều kiện thay pass vùng.
Điều kiện là jì jì đó.
http://www.giaiphapexcel.com/forum/member.php?61139-ndu96081631Thầy ndu96081631 ạ! mong thầy giúp em trường họp này với?//////
 
Upvote 0
Web KT
Back
Top Bottom