คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 5
ผมแนะนำวิธีนะครับ เอาแบบง่ายๆเลยนะครับ
เริ่มจากก่อนอื่น การสร้าง DropDown มี 2 แบบครับ คือสร้างไว้ใน Object ที่เป็น ActiveX Controls ครับ ส่วนที่ 2 ใช้ตัว Data Validation
ผมขออธิบายตามที่เจ้าของกระทู้ถามมาก่อนแล้วกันนะครับ
ตามตัวอย่าง ผมสร้าง Sheet ขึ้นมา 1 Sheet ครับ มี ปุ่ม Clear กับ DropDown (ผมใช้ Combobo)
1. ตรงช่องรายการ หรือตัวเลือก ผมใช้สูตรการตึ้งพื้นที่ Cells แบบ Dynamic นะครับ (ภาษาคนคือ ไอสูตรที่มันจะยืดหยุ่น เช่น พอเราเพิ่มค่าตัวเลือกใน List ข้อมูลในตัวเลือกของ Drop Down เราก็จะเพิ่มตาม ถ้าเราลบข้อมูลตัวเลือกให้น้อยลง ตัวเลือกใน DropDown เราก็จะน้อยลงตามไปด้วย) จากตัวอย่าง ผมใช้สูตรคือ =OFFSET($B$4,0,0,COUNTA($B$4:$B$100)) เสร็จแล้ว COPY แล้วกด Ctrl + F3 เพื่อเข้าไปตั้งชื่อพื้นที่ครับเอาไว้ใส่ ListFillRank ครับ
2. สร้างปุ่ม Combobox ตั้งชื่อที่ต้องการ ตัวอย่างผมตั้งว่า CboList กำหนด ListFillRank = DataList
3. สร้างปุ่ม CommandButton ขึ้นมา ตั้งชื่อว่า cmdClear
การล้างค่า ถ้าเราใช้ Clear มันจะหายหมด แต่ถ้าใช้ ListFillRank พอ Clear มันจะ Error
เราก็ใส่ Code ไปว่า
ไฟล์ตัวอย่างนะจ๊ะ ผมใส่ไว้ให้แล้วใน OneDrive
http://1drv.ms/1LwtS00
ภาพนี้ตอนเรากด Ctrl + F3 เราจะเรียกหน้าต่างมาเพื่อกำหนดชื่อ Cells (ปกติถ้าไม่ใช่ตั้งชื่อแบบสูตร เราก็เอาเมาส์คลุมไว้ คลิก Name box แล้วกด Enter เลย

กำหนด ListfillRank เสร็จ มันจะมาเป็นตัว เลือก DropDown ให้เลย ไม่ต้องเขียน Code Add เสียเวลา

รวมแล้ว Code กับสูตร แค่นี้แหละครับ ลองเอาไปประยุกต์ใช้ดูนะ

จบ หวังว่าสิ่งนี้จะเป็นประโยชน์กับคุณนะ
เริ่มจากก่อนอื่น การสร้าง DropDown มี 2 แบบครับ คือสร้างไว้ใน Object ที่เป็น ActiveX Controls ครับ ส่วนที่ 2 ใช้ตัว Data Validation
ผมขออธิบายตามที่เจ้าของกระทู้ถามมาก่อนแล้วกันนะครับ
ตามตัวอย่าง ผมสร้าง Sheet ขึ้นมา 1 Sheet ครับ มี ปุ่ม Clear กับ DropDown (ผมใช้ Combobo)
1. ตรงช่องรายการ หรือตัวเลือก ผมใช้สูตรการตึ้งพื้นที่ Cells แบบ Dynamic นะครับ (ภาษาคนคือ ไอสูตรที่มันจะยืดหยุ่น เช่น พอเราเพิ่มค่าตัวเลือกใน List ข้อมูลในตัวเลือกของ Drop Down เราก็จะเพิ่มตาม ถ้าเราลบข้อมูลตัวเลือกให้น้อยลง ตัวเลือกใน DropDown เราก็จะน้อยลงตามไปด้วย) จากตัวอย่าง ผมใช้สูตรคือ =OFFSET($B$4,0,0,COUNTA($B$4:$B$100)) เสร็จแล้ว COPY แล้วกด Ctrl + F3 เพื่อเข้าไปตั้งชื่อพื้นที่ครับเอาไว้ใส่ ListFillRank ครับ
2. สร้างปุ่ม Combobox ตั้งชื่อที่ต้องการ ตัวอย่างผมตั้งว่า CboList กำหนด ListFillRank = DataList
3. สร้างปุ่ม CommandButton ขึ้นมา ตั้งชื่อว่า cmdClear
การล้างค่า ถ้าเราใช้ Clear มันจะหายหมด แต่ถ้าใช้ ListFillRank พอ Clear มันจะ Error
เราก็ใส่ Code ไปว่า
Private Sub cmdClear_Click()
cboList.Value = ""
End Sub
cboList.Value = ""
End Sub
ไฟล์ตัวอย่างนะจ๊ะ ผมใส่ไว้ให้แล้วใน OneDrive
http://1drv.ms/1LwtS00
ภาพนี้ตอนเรากด Ctrl + F3 เราจะเรียกหน้าต่างมาเพื่อกำหนดชื่อ Cells (ปกติถ้าไม่ใช่ตั้งชื่อแบบสูตร เราก็เอาเมาส์คลุมไว้ คลิก Name box แล้วกด Enter เลย

กำหนด ListfillRank เสร็จ มันจะมาเป็นตัว เลือก DropDown ให้เลย ไม่ต้องเขียน Code Add เสียเวลา

รวมแล้ว Code กับสูตร แค่นี้แหละครับ ลองเอาไปประยุกต์ใช้ดูนะ

จบ หวังว่าสิ่งนี้จะเป็นประโยชน์กับคุณนะ
แสดงความคิดเห็น
Excel ลบข้อมูลแต่ยังเหลือ Drop Down List ให้เลือกรายการใหม่