Page 1 of 1

ปลดล็อคแบบมีเงื่อนไข ไม่ได้

Posted: Sat Nov 05, 2022 10:58 am
by donut123
สอบถามผู้รู้ครับ ผมทำการสร้าง VBA มาเพื่อปลดล็อคเซลล์ โดยใช้เงื่อนไข เมื่อกรอกข้อมูล ช่อง A:J ใน Row ครบแล้ว ถึงจะสามารกรอกข้อมูลใน Row ถัดไปได้ครับ ผมลองทำดูแล้วมันขึ้นว่า " Duplicate declaration in current scope " ครับ หากต้องการให้เป็นไปตามที่ผมกล่าวมาต้องวางเงื่อนไขอย่างไรครับ ถึงจะได้ตรงตามที่ต้องการ
ปล.รหัสผ่าน fo-mr-063
VBA ที่ใช้

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Target As Range
Set Target = Range("I4:J4")
If Target = "" Then
Me.Protect Password:="fo-mr-063"
 Range("A5:H5").Locked = True
    ElseIf Target <> "" Then
    Me.Protect Password:="fo-mr-063"
       Range("A5:H5").Locked = False
    End If
End Sub


Re: ปลดล็อคแบบมีเงื่อนไข ไม่ได้

Posted: Sat Nov 05, 2022 11:37 am
by snasui
:D จาก

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Target As Range
ลบบรรทัดล่างทิ้งไป ถือว่าเป็นประกาศตัวแปรซ้ำตามที่โปรแกรมฟ้องครับ

Re: ปลดล็อคแบบมีเงื่อนไข ไม่ได้

Posted: Sat Nov 05, 2022 12:07 pm
by donut123
ลบแล้วครับ ที่นี้ขึ้น " Type mismatch " ถ้าเกิดค่าใน Cell เป็น อักษรและตัวนี้ต้องใส่เงื่อนไขอื่นไปไหมครับ อาจารย์

Re: ปลดล็อคแบบมีเงื่อนไข ไม่ได้

Posted: Sat Nov 05, 2022 12:11 pm
by snasui
:D อ่านแล้วไม่เข้าใจครับ

กรุณาจับภาพการฟ้อง แจ้งบรรทัดที่ติดปัญหา จะได้เข้าถึงปัญหาได้โดยไวครับ

Re: ปลดล็อคแบบมีเงื่อนไข ไม่ได้

Posted: Sat Nov 05, 2022 12:26 pm
by donut123
บรรทัดที่ 3 ครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Range("I4:J4")
If Target = "" Then

Re: ปลดล็อคแบบมีเงื่อนไข ไม่ได้

Posted: Sat Nov 05, 2022 12:41 pm
by snasui
:D Target ควรเป็นเซลล์ใดเซลล์เดียวไม่ใช่เป็นช่วงเซลล์ ถึงจะสามารถนำไปตรวจสอบว่าเป็นเซลล์ว่างหรือไม่

ตามที่ถามมานั้นเรากำหนด Target ให้เป็น Range("I4:J4") ซึ่งเป็นช่วงเซลล์ จะนำไปเช็คว่าเป็นเซลล์ว่างด้วยวิธีเทียบกับค่าว่างไม่ได้ครับ

อาจจะกำหนดเป็น if application.countifs(target,"") = 2 then เป็นการนับว่าช่วงเซลล์ดังกล่าวมีค่าว่างหรือไม่ถึงจะทำงานได้ เช่นนี้เป็นต้นครับ

Re: ปลดล็อคแบบมีเงื่อนไข ไม่ได้

Posted: Sat Nov 05, 2022 1:12 pm
by donut123
เดี๋ยวจะลองปรับปรุงดูครับอาจาร์ยหาก ติดขัดส่วนไหนจะนำมาสอบถามอีกครั้งครับ ขอบคุณครับ

Re: ปลดล็อคแบบมีเงื่อนไข ไม่ได้

Posted: Tue Nov 08, 2022 3:50 pm
by donut123
ขอสอบถามอีกครั้งครับอาจารย์ ถ้าหากว่าผมอยากให้ปลดล็อค เฉพาะคอลัม ต้องเขียนเงื่อนไขว่าอย่างไรครับ

Re: ปลดล็อคแบบมีเงื่อนไข ไม่ได้

Posted: Tue Nov 08, 2022 6:45 pm
by snasui
:D การ Lock หรือไม่มีวิธีการกำหนด 2 ประการสำคัญดังนี้ครับ
  1. พื้นที่ใดที่ต้องการให้แก้ไขได้ต้องกำหนดรูปแบบเซลล์ให้เป็น Unlock โดย
    1. คลิกขวาในพื้นที่นั้น
    2. เลือก Format Cells
    3. ที่แถบ Protection ปลดเครื่องหมายที่ Locked
  2. ทำการ Protect
พื้นที่ใดไม่มีการ Unlock จะถูก Lock ทั้งหมด การจะกำหนด Format ดังกล่าวจะทำโดยใช้ Code ก็ย่อมได้ครับ

Re: ปลดล็อคแบบมีเงื่อนไข ไม่ได้

Posted: Thu Nov 10, 2022 8:01 am
by donut123
เรื่องของการ การจะกำหนด Format จะทำได้โดยการกำหนดอย่างไรครับพอมีตัวอย่างไหมครับ อาจารย์

Re: ปลดล็อคแบบมีเงื่อนไข ไม่ได้

Posted: Thu Nov 10, 2022 8:07 am
by snasui
:D อ่านข้อ 1 ที่ผมโพสต์ไปด้านบน :roll: ครับ "รูปแบบเซลล์" กับ "Format Cell" คือสิ่งเดียวกันครับ