Làm sao biết dc 1 sheet đang dc protect?

Liên hệ QC

anhtuan1066

Thành viên gạo cội
Tham gia
10/3/07
Bài viết
5,802
Được thích
6,912
Các bạn cho hỏi: Có đoạn code hay 1 function gì đó có thể xác định dc tình trạng protect cũa 1 sheet ko?
ANH TUẤN
 
anhtuan1066 đã viết:
Các bạn cho hỏi: Có đoạn code hay 1 function gì đó có thể xác định dc tình trạng protect cũa 1 sheet ko?
ANH TUẤN
Anh có thể dùng hàm này:

PHP:
Public Function wbSheetProtected(wsTest As String) As Boolean
wbSheetProtected = False
        If Sheets(wsTest).ProtectContents = True Then
            wbSheetProtected = True
        End If
End Function
TP.
 

File đính kèm

Lần chỉnh sửa cuối:
ttphong2007 đã viết:
Anh có thể dùng hàm này:

PHP:
wbSheetProtected = False
TP.

Không có đoạn này thì có được không vậy Phong ??
Bởi mình thấy khi bắt đầu thì thường biến này sẽ có giá trị là False

Thân!
 
anhtuan1066 đã viết:
Uh... VBA thì có rất nhiều cách.. đại khái vẫn là IF.. PROTECT.. THEN...
Vậy còn cách nào khác ko?
ANH TUẤN
Hi hi, ý anh là sao ? Anh muốn dùng công thức hả ? Em nghĩ ngoài VBA thì không còn cách nào đâu anh à. Hay không dùng VBA thì mỗi lần muốn biết Sheet có Protect hay không thì mở Menu Tools / Protection và thấy chữ Protect nó mờ đi (không hiệu lực) tức là nó đang bị Protect á.. (hỏng nổi cáu nha, he he...)

Thân
TDN
 
Tôi thì nghĩ ngoài VBA vẫn còn có cách khác bằng công thức đây! Tin ko thầy?... he... he... (nếu ko thì tôi đã đưa chủ đề này vào box lập trình rồi)
----------------
Ngoài ra nếu như dùng VBA thì tôi nghĩ nên là:
PHP:
Option Explicit
Public Function wbSheetProtected(wsTest As String) As Boolean
    Dim ws As Worksheet
    Application.Volatile
        If Sheets(wsTest).ProtectContents = True Then
            wbSheetProtected = True
        End If
End Function
Thế nó mới cập nhật dc khi có thay đổi chứ (chiêu này học cũa thầy Phong và thầy Bắp.. ha.. ha... )
ANH TUẤN
 
Lần chỉnh sửa cuối:
Xl4ml

Câu hỏi này giống câu đố quá @#!^%!

Ngoài VBA, ta có thể dùng hàm của XL4ML để kiểm tra Sheet có protect hay không.

Ví dụ kiểm tra Sheet1 xem có Protect hay không thì
Đặt 1 name tên gì đó (ví dụ như TestSheetProtect) và vào Sheet2 chẳng hạn và nhập công thức vào A1 chẳng hạn =TestSheetProtect

Name TestSheetProtect có Refers to:
=GET.DOCUMENT(83, "SHEET1")+NOW()*0

(Nhấn F9 hay mỗi khi Workbook có sự tính toán thì kết quả sẽ cập nhật)

TP.
 
Lần chỉnh sửa cuối:
Uh... cũng có lý... he... he... thế làm sao cho nó cập nhật đây? Vì nếu chỉ đặt name thế thôi thì nó sẽ.. trơ trơ khi có thay đổi

He... he... Cái này ko phải "đố".. mục đích là nghiên cứu cho vui đễ hiểu thêm!
Phong cho hỏi: nếu dùng =GET.DOCUMENT(83, "SHEET1")+NOW()*0 thì giá trị nhận dc sẽ là 0 hoặc 1... Giờ nếu tôi vẫn muốn vừa cập nhật mà giá trị nhận dc vẫn có dạng TRUE, FALSE thì làm sao?
ANH TUẤN
 
anhtuan1066 đã viết:
He... he... Cái này ko phải "đố".. mục đích là nghiên cứu cho vui đễ hiểu thêm!
Phong cho hỏi: nếu dùng =GET.DOCUMENT(83, "SHEET1")+NOW()*0 thì giá trị nhận dc sẽ là 0 hoặc 1... Giờ nếu tôi vẫn muốn vừa cập nhật mà giá trị nhận dc vẫn có dạng TRUE, FALSE thì làm sao?
ANH TUẤN

Dễ mà, anh có thể sửa thành:
=If(GET.DOCUMENT(83, "SHEET1")+NOW()*0,True,False) --=0


 
FunnyBoy đã viết:
Dễ mà, anh có thể sửa thành:
=If(GET.DOCUMENT(83, "SHEET1")+NOW()*0,True,False)
He... he... Hay nhỉ ! Tạm dc.. nhưng mà.. hơi mất công
Tôi thì thích dùng INDIRECT hơn... Nhưng ko sao... Dù gì cũng là giãi pháp! Cãm ơn các bạn!
ANH TUẤN
 
Góp ý anhtuan1066

ttphong2007 đã viết:
Câu hỏi này giống câu đố quá @#!^%!

Em đề nghị Anh Tuấn:
_ Nên ghi rõ ràng những vấn đề anh muốn nhằm tránh tình trạng mọi người cứ nghĩ anh "hỏi đố" thì chết !
_ Các câu hỏi anh đưa ra như vậy nó làm cho các chuỗi topic không liên tục. Một người muốn giúp anh cũng khó, một người muốn tìm thông tin cũng khó.

Xin Anh chú ý cho!

Lê Văn Duyệt
 
Tra loi: Mot sheet dang duoc protection

Co nhieu cach de bv mot sheet.

Khi muon khoa mot sheet (Nho tao mot nut de kich hoat,hoac co the dung phim tat do minh tu dat)

Private Sub KHOA_Click() ' goi y thoi
Sheets("Sheets").Select ' Sheet la goi y, co the le ten khac
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True, AllowUsingPivotTables:=True, Password:="123" 'Password la goi y
End Sub

Khi mo khoa, tuong tu nhu vay,(hoac co the dung phim tat do minh tu dat)
Private Sub MOKHOA_Click()
ActiveSheet.Unprotect Password:="123"
End Sub
 
nếu đã bảo vệ thì bảo vệ cả file luôn, cần gì bảo vệ sheet làm gì cho mệt. gõ công thức lằng ngoằng không chừng lại làm hỏng sheet ấy chứ
 
quangvinh3ik47 đã viết:
nếu đã bảo vệ thì bảo vệ cả file luôn, cần gì bảo vệ sheet làm gì cho mệt. gõ công thức lằng ngoằng không chừng lại làm hỏng sheet ấy chứ
Đại ca có xem kỹ câu hỏi cũa tôi ko? Tôi đâu có bàn về việc bảo vệ ? Tôi chỉ hỏi là làm sao biết dc sheet có bảo vệ hay ko cơ mà!
Hic.. Chẳng đọc kỹ gì cã
ANH TUẤN
 
Web KT

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

Back
Top Bottom