
สามารถออกแบบได้หลายวิธีครับ
กรณีที่ไม่ต้องการปรับ Code ให้ยุ่งยากมากสามารถทำได้ง่าย ๆ ด้วยการคัดลอกข้อมูลไปไว้ยังพื้นที่อื่นก่อน ซึ่งจริง ๆ ข้อมูลควรมาจากพื้นที่อื่น ก่อนนำมาวางในชีต dataplace คอลัมน์ A:F และเมื่อจะทำงานนี้ค่อยนำข้อมูลนั้นมาวางเพื่อใช้เป็น DataSource ให้กับ ListBox ลักษณะการทำงานเช่นนี้ข้อมูลต้นทางก็จะยังมีอยู่ตลอดเวลา
ปกติข้อมูลจะต้องมีต้นทาง ไม่ว่าจะอยู่ใน Database อื่น อยู่ในไฟล์อื่น อยู่ในชีตอื่น หรืออยู่ชีตเดียวกันแต่คนละพื้นที่
การนำมาใช้จะดึงข้อมูลจากต้นทางเข้ามาวางยังพื้นที่ใด ๆ ก่อนจะนำเข้าไปยัง ListBox สำหรับตัวอย่างนี้ก็เช่นกันจะต้องมีที่มาของข้อมูล ดังนั้นข้อมูลคอลัมน์ A:F ของชีต dataplace จะถือว่าไม่ใช่ Source แต่นำข้อมูลจาก Source มาวางอีกที เช่นนี้เป็นต้น
อีกวิธีจะยุ่งยากกว่านี้คือแทนที่จะกำหนด DataSource ให้กับ ListBox แต่เป็นการ Loop ข้อมูลจากชีต dataplace เข้าไปใน ListBox แทน และลบออกจาก ListBox ตามรายการที่วางในพื้นที่เป้าหมายแล้ว ในกรณีนี้สามารถจะใช้ข้อมูลที่ชีต dataplace เป็นต้นทางได้โดยตรงเพราะไม่มีการลบออกไปแต่อย่างใด
อีกวิธีที่พอทำได้คือ หากวางแล้วจะไม่สามารถเลือกรายการนั้นใน ListBox ได้ จะต้องเขียน Code ให้ Loop ไปตรวจสอบเมื่อมีคลิกรายการใน ListฺBox ว่ามีข้อมูลที่ปลายทางแล้วหรือไม่ ในการทำงานจริงย่อมไม่สะดวกแก่ผู้ใช้ การที่ไม่มีรายการให้เลือกจะสะดวกต่อการทำงานมากกว่าครับ