Page 1 of 1

ต้องการป้องกันไม่ให้ผู้ใช้งานยกเลิกการตรึงแนว

Posted: Sun Jan 11, 2026 10:16 pm
by tigerwit
จากไฟล์ที่แนบมา มีการตรึงแนวคลอลัมน์ D และแถวที่ 3
ป้องกันการแก้ไขชีท สิ่งที่ต้องการคือ ป้องกันไม่ให้ผู้ใช้งานคนอื่น ยกเลิการตรึงแนว มีวิธีการอย่างไรครับ
ผมลองป้องกันชีทไม่ให้แก้ไขไว้ รหัสป้องกันชีทคือ 1 แต่ก็ยังสามารถยกเลิกการตรึงแนวโดยที่ไม่ต้องยกเลิการป้องกันชีท

Re: ต้องการป้องกันไม่ให้ผู้ใช้งานยกเลิกการตรึงแนว

Posted: Mon Jan 12, 2026 5:53 am
by snasui
:D การทำงานเช่นนั้นคงต้องพึ่ง VBA เข้ามาช่วยครับ

เป็นการดักจับเพื่อสร้างการตรึงแนวใหม่ ในกรณีผู้ใช้ยกเลิกการตรึงแล้วและมีการคลิกในตำแหน่งเซลล์ใด ๆ โปรแกรมจะมีการตรววจสอบว่ามีการตรึงแนวอยู่แล้วหรือไม่ หากไม่มีจะตรึงแนวให้ใหม่

ลองนำ Code นี้ไปวางใน Sheet1 แล้วทดสอบดูครับ

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With Me
        If Not .Parent.Windows(1).FreezePanes Then
            .Range("d3").Activate
            ActiveWindow.FreezePanes = True
        End If
    End With
End Sub