หน้าเว็บ

วันพฤหัสบดีที่ 8 กรกฎาคม พ.ศ. 2553

เทคนิคการเลือกเซลล์ที่ไม่ได้ทำการ Locked เพื่อ Clear ข้อมูลในคราวเดียว

กรณีที่เราสร้างไฟล์เพื่อให้ผู้ใช้งานกรอกข้อมูล บางกรณีจำเป็นที่จะต้องมีการ Protect Worksheet เพื่อไม่ให้แก้ไขเซลล์ที่สำคัญและเปิดให้แก้ไขได้เฉพาะบางเซลล์ หากเปิดให้มีการแก้ไขได้หลาย ๆ เซลล์ในพื้นที่ไม่ติดกัน ในขั้นตอน Clear ข้อมูลจะค่อนข้างลำบากหากต้องคลิกเลือกเซลล์เหล่านั้นเอง

การเลือกเซลล์ที่ไม่ได้ทำการ Locked เอาไว้พร้อม ๆ กันทีเดียวขอเสนอไว้ 2 วิธีดังนี้ครับ

  1. ด้วยการสร้าง Custom View โดยการเลือกเซลล์ที่ให้แก้ไขได้ไว้ก่อน จากนั้นเข้าไปกำหนดชื่อให้กับ View โดยเข้าเมนู View > Custom View > Add > กำหนดชื่อ View
    เมื่อจะเรียกใช้งานให้เข้าเมนูเดียวกันแล้วเลือกชื่อ View ที่ต้องการ
  2. ด้วยการเขียน Code VBA ซึ่งมีตัวอย่าง Code ตามด้านล่าง

    Option Explicit 
    Sub DelUnlocked()
    Dim r As range
    Dim uRange As range
    Set uRange = Worksheets("Sheet1").UsedRange
    For Each r In uRange
    If r.Locked = False Then r.ClearContents
    Next r
    MsgBox "Complete"
    End Sub



ดูภาพประกอบทั้งสองวิธีตามด้านล่างครับ



SelectUnlockedCells

3 ความคิดเห็น:

ไม่ระบุชื่อ กล่าวว่า...

ขอขอบคุณที่ี่ให้ข้อมูลความรู้ซึ่งมีประโยชน์อย่างมาก

ผมได้ลองทำตาม custom view แล้ว ใช้ได้ผลดี
แต่อยากลองทำแบบ VBA ดูด้วย โดยคัดลอกคำสั่งมาจากเวป แล้วเรียกใช้แมคโคร delunlocked จนขึ้นว่า complete ok แต่ไม่มีการลบข้อมูลครับ ไม่ทราบว่าต้องตั้งค่าอะไรอีกหรือเปล่าครับ

ขอบคุณครับ

snasui กล่าวว่า...

ลองส่งแนบไฟล์ตัวอย่างที่ทำแล้วไปที่ http://www.snasui.com/ ซึ่งต้องสมัครสมาชิก(ฟรี)ก่อนถึงจะโพสต์ได้ จะช่วยดูให้ครับ

ไม่ระบุชื่อ กล่าวว่า...

ขอบคุณสำหรับคำแนะนำครับ
ตามความเข้าใจของผม สำหรับคนที่มาอ่านที่หลัง เทคนิคนี้มีเงื่อนไขการใช้งาน เช่น
1 ถ้ามีการ merge cell หรือชื่อ worksheet อื่น จะใช้งาน vba นี้ไม่ได้
ถ้าจะใช้กับ merge cell, vba จะมี่ความซับซ้อนมากขึ้น
2 ถ้าต้องการลบเซลล์ที่เลือกใน custom view จะต้องเลือกและสร้างใหม่ทั้งหมด
แต่ถ้าต้องการเพิ่มเซลล์ สามารถเพิ่มได้โดยตั้งชื่อแทนชื่อเดิม
ถ้าจะเลือกเซลล์หลาย ๆ สิบเซลล์ ควรใช้ความระมัดระวัง

Joe