Page 1 of 1

การป้องกันชีทแบบไม่เหมือนกัน โดยใช้ Protect

Posted: Thu Mar 29, 2012 11:45 am
by yodpao.b
การป้องกันชีทแบบไม่เหมือนกัน โดยใช้ Protect
การป้องกันชีท โดยใช้ Protect
1.ต้องการป้องกันชีทโดยคลิกเซลได้โดยให้อยู่ในชีท 1 2 3 5
2.ต้องการป้องกันชีทโดยคลิกเซลไม่ได้โดยให้อยู่ในชีท 4
จึงเขียน โคดดังนี้

Code: Select all

Sub ProtectAllSheets()
   For Each Sht In ThisWorkbook.Worksheets
       Sht.Protect Password:="123", DrawingObjects:=True, Contents:=True, Scenarios:=True
        ActiveSheet.EnableSelection = xlNoRestrictions
   Next
    Worksheets("Sheet4").Protect Password:="123", DrawingObjects:=True, Contents:=True, Scenarios:=True
        ActiveSheet.EnableSelection = xlUnlockedCells  
End Sub
ผลที่ได้คือ ชีท 1 3 5 ทำงานป้องกันชีทโดยคลิกเซลได้ ถูกต้อง
ชีท 4 ทำงานป้องกันชีทโดยคลิกเซลไม่ได้ ถูกต้อง
ชีท 2 ทำงานป้องกันชีทโดยคลิกเซลไม่ได้ ผิด

ขั้นตอนทำงานคือ
สถานะอยู่ที่ ชิท 2 แล้วค่อยRunคำสั่ง

จะสังเกตข้อที่ผิดพลาดคือ เมื่ออยู่ในสถานะอยู่ที่ ชิทใดก่อนสั่ง Run โปรแกรมจะสั่งให้ชีทนั้นทำงาน
ตามคำสั่งนี้ Worksheets("Sheet4").Protect Password:="123", DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells

จะเขียนโดคอย่างไรดีครับ

Re: การป้องกันชีทแบบไม่เหมือนกัน โดยใช้ Protect

Posted: Thu Mar 29, 2012 1:08 pm
by snasui
:D ยกเลิกการป้องกันทุกชีทก่อน แล้วทดสอบ Code ตามด้านล่างดูครับ

Code: Select all

Sub ProtectAllsheets()
    Dim sht As Worksheet
    For Each sht In Worksheets
        Select Case sht.Name
            Case "Sheet1", "Sheet2", "Sheet3", "Sheet5"
                sht.Protect Password:="123", DrawingObjects:=True, _
                   Contents:=True, Scenarios:=True
                sht.EnableSelection = xlNoRestrictions
            Case "Sheet4"
                sht.Protect Password:="123", DrawingObjects:=True, _
                   Contents:=True, Scenarios:=True
                sht.EnableSelection = xlNoSelection
        End Select
    Next sht
End Sub

Re: การป้องกันชีทแบบไม่เหมือนกัน โดยใช้ Protect

Posted: Thu Mar 29, 2012 1:24 pm
by yodpao.b
ขอบคุณมากครับผม ได้แล้วครับ
ตรงความต้องการเลยครับ