snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ
ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
tigerwit
Silver
Posts: 555 Joined: Wed Mar 31, 2010 10:51 pm
Location: สกลนคร
Excel Ver: 2019
Contact:
#1
Post
by tigerwit » Fri Apr 09, 2010 12:06 am
สวัสดีครับ
มาขอความช่วยเหลืออีกครั้ง
ตามไฟล์ที่แนบมาครับ
1. Cell K9 Sheet Main ต้องการให้ผู้ใช้งานกรอกได้แค่ ก ข ค
2. Sheet Main ต้องการป้องกันไม่ใช้ผู้ใช้งานเลื่อนลงด้านล่างของ Sheet ด้วยการเลื่อนปุ่มกลาง ของเมาส์
ขอคำแนะนำด้วยครับ
Attachments
Rach_Ok.xls
(91 KiB) Downloaded 20 times
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Fri Apr 09, 2010 12:21 am
ให้ทำการปลดการ Protect ก่อนแล้วทำตามภาพครับ
Attachments
LockAreaAndSetValidation.gif (651.64 KiB) Viewed 215 times
tigerwit
Silver
Posts: 555 Joined: Wed Mar 31, 2010 10:51 pm
Location: สกลนคร
Excel Ver: 2019
Contact:
#3
Post
by tigerwit » Fri Apr 09, 2010 10:22 pm
สวัสดีครับทำตามแล้วมารายงานผล
ข้อ 1. ได้ตามต้องการ
ข้อ 2. มีปัญหาครับ หลังจากล็อค ใช้ได้ สกอร์บาร์ไม่เลื่อน (ตอนที่ยังไม่ปิดไฟล์)
แต่หลังจากปิดไฟล์ลงไป แล้วเปิดไฟล์นั้นขึ้นมาใหม่ ที่ล็อคไว้ กลับมีปัญหา ไม่ล็อคครับ เลื่อนได้เฉยเลย
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Fri Apr 09, 2010 10:43 pm
Excel ไม่จำค่าที่กำหนดให้ Lock พื้นที่ไว้ครับ หนทางที่ช่วยได้คือเขียน Code VBA ตามภาพด้านล่าง
แต่เครื่องที่จะมีผลคือได้กำหนด Security เป็น Medium หรือ Low เท่านั้นครับ วิธีกำหนด Security ให้ทำดังนี้ครับ
เข้าเมนู Tools > Macro > Security > กำหนดเป็น Medium หรือ Low หากกำหนดเป็น Medium โปรแกรมจะถามว่ายอมให้ใช้ Macro หรือไม่ ซึ่งต้องตอบรับว่ายอมให้ใช้ตอนที่เปิดไฟล์ขึ้นมาครับ ถ้าเลือกเป็น Low จะไม่มีการถาม
Attachments
ScrollArea.gif (360.65 KiB) Viewed 207 times
tigerwit
Silver
Posts: 555 Joined: Wed Mar 31, 2010 10:51 pm
Location: สกลนคร
Excel Ver: 2019
Contact:
#5
Post
by tigerwit » Fri Apr 09, 2010 11:25 pm
ขอบคุณครับ
ลองแล้วไม่ได้เหมือนเดิม
ผมพิมพ์โค๊ดผิดหรือเปล่าครับ
Attachments
Rach_Ok.xls
(93 KiB) Downloaded 24 times
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Fri Apr 09, 2010 11:46 pm
เนื่องจากต้อง Activate ถึงจะมีผลครับ เช่น คลิกไปที่ Sheet อื่นก่อนแล้วค่อยกลับมาคลิก Sheet Main
เพื่อให้มีผลตอนเปิดไฟล์ทุกครั้งสามารถเขียน Code ที่ ThisWorkbook โดย Copy Code ด้านล่างไปวางได้เลยครับ
Code: Select all
Private Sub Workbook_Open()
Sheets("Main").ScrollArea = "A1:Q3"
End Sub
Attachments
LockScrollArea.PNG (43.65 KiB) Viewed 204 times
tigerwit
Silver
Posts: 555 Joined: Wed Mar 31, 2010 10:51 pm
Location: สกลนคร
Excel Ver: 2019
Contact:
#7
Post
by tigerwit » Sat Apr 10, 2010 1:02 pm
ได้แล้วครับ
ขอบคุณมากครับ