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

จาก
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

อ่านแล้วไม่เข้าใจครับ
กรุณาจับภาพการฟ้อง แจ้งบรรทัดที่ติดปัญหา จะได้เข้าถึงปัญหาได้โดยไวครับ
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

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

การ Lock หรือไม่มีวิธีการกำหนด 2 ประการสำคัญดังนี้ครับ
- พื้นที่ใดที่ต้องการให้แก้ไขได้ต้องกำหนดรูปแบบเซลล์ให้เป็น Unlock โดย
- คลิกขวาในพื้นที่นั้น
- เลือก Format Cells
- ที่แถบ Protection ปลดเครื่องหมายที่ Locked
- ทำการ 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

อ่านข้อ 1 ที่ผมโพสต์ไปด้านบน

ครับ "รูปแบบเซลล์" กับ "Format Cell" คือสิ่งเดียวกันครับ