/ / Excel VBA Multicolumn Combo Box

กล่องคำสั่งผสมของ Excel VBA Multicolumn

ด้านล่างเราจะดูที่โปรแกรมมา Excel VBA ซึ่งสร้าง Userform ที่ประกอบด้วย a multicolumn combo box.

Userform ที่เราจะสร้างขึ้นมีลักษณะดังนี้:

กล่องคำสั่งผสมหลายคอลัมน์ใน Excel VBA

ในการสร้าง Userform นี้ให้ทำตามขั้นตอนต่อไปนี้

1. เปิดตัวแก้ไข Visual Basic ถ้าโครงการ Explorer ไม่สามารถมองเห็นคลิกมุมมองโครงการ Explorer.

2. คลิกแทรก, Userform ถ้ากล่องเครื่องมือไม่ปรากฏขึ้นโดยอัตโนมัติให้คลิกมุมมองกล่องเครื่องมือ ควรตั้งค่าหน้าจอดังนี้

การตั้งค่าหน้าจอ Userform ใน Excel VBA

3. เพิ่มป้ายชื่อกล่องคำสั่งผสมและปุ่มคำสั่ง เมื่อผลการค้นหาเสร็จสมบูรณ์ผลลัพธ์ควรสอดคล้องกับรูปแบบ Userform ที่แสดงไว้ก่อนหน้านี้ ตัวอย่างเช่นสร้างตัวควบคุมกล่องคำสั่งผสมโดยคลิกที่ ComboBox จากกล่องเครื่องมือ จากนั้นคุณสามารถลากกล่องคำสั่งผสมใน Userform ได้

4 คุณสามารถเปลี่ยนชื่อและคำอธิบายภาพของตัวควบคุมได้ ชื่อที่ใช้ในโค้ด Excel VBA คำอธิบายภาพคือคำอธิบายภาพที่ปรากฏบนหน้าจอของคุณ การเปลี่ยนชื่อของตัวควบคุมเป็นวิธีที่ดี แต่ไม่จำเป็นเนื่องจากเรามีตัวควบคุมเพียงเล็กน้อยในตัวอย่างนี้ ในการเปลี่ยนคำอธิบายภาพของปุ่ม Userform ฉลากและคำสั่งให้คลิก View, Properties Window และคลิกที่แต่ละตัวควบคุม

5. เมื่อต้องการแสดง Userform ให้วางคำสั่งลงในเวิร์กชีทของคุณและเพิ่มโค้ดโค้ดต่อไปนี้:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

ตอนนี้เรากำลังสร้าง Sub UserForm_Initialize เมื่อคุณใช้การแสดงวิธีการสำหรับ Userform ย่อยนี้จะถูกดำเนินการโดยอัตโนมัติ

เปิดตัว Visual Basic Editor

7. ใน Project Explorer คลิกขวาที่ UserForm1 จากนั้นคลิก View Code

8. เลือก Userform จากรายการแบบหล่นลงด้านซ้าย เลือกเริ่มต้นจากรายการแบบเลื่อนลงด้านขวา

9. เพิ่มบรรทัดรหัสต่อไปนี้:

Private Sub UserForm_Initialize()

ComboBox1.ColumnCount = 2

Dim Films(1 To 5, 1 To 2) As String
Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"
Films(2, 1) = "Speed"
Films(3, 1) = "Star Wars"
Films(4, 1) = "The Godfather"
Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"
Films(2, 2) = "Action"
Films(3, 2) = "Sci-Fi"
Films(4, 2) = "Crime"
Films(5, 2) = "Drama"

ComboBox1.List = Films

End Sub

คำอธิบาย: สายรหัสแรกกำหนดจำนวนคอลัมน์ของกล่องคำสั่งผสมเป็น 2 แทนการกำหนดจำนวนคอลัมน์ที่รันไทม์คุณสามารถกำหนดการตั้งค่านี้ได้ในขณะออกแบบ เมื่อต้องการทำเช่นนี้คลิกขวาที่ตัวควบคุมกล่องคำสั่งผสมคลิกคุณสมบัติและตั้งค่า ColumnCount คุณสมบัติเป็น 2 ถัดไปเราประกาศและเตรียมใช้งานอาร์เรย์สองมิติ สายรหัสสุดท้ายจะกำหนดอาร์เรย์ให้กับกล่องคำสั่งผสม

ขณะนี้เราได้สร้างส่วนแรกของ Userform แล้ว แม้ว่าจะดูเรียบร้อยแล้ว แต่จะไม่มีอะไรเกิดขึ้นเมื่อคลิกปุ่มคำสั่งใน Userform

10. ใน Project Explorer ให้คลิกสองครั้งที่ UserForm1

11. ดับเบิลคลิกที่ปุ่ม OK

12. เพิ่มบรรทัดรหัสต่อไปนี้:

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

On Error Resume Next
MsgBox "You like " & ComboBox1.Column(1) & " movies"

End Sub

บันทึก: บรรทัดรหัสเหล่านี้จะปิด Userform Excel VBA และแสดงรายการและประเภทที่เลือก คำสั่ง "On Error Resume Next" จะละเว้นข้อผิดพลาดเมื่อผู้ใช้กรอกข้อมูลในภาพยนตร์ของตนเอง (ในกรณีนี้จะไม่มีประเภทใดอยู่)

13. ดับเบิลคลิกที่ปุ่ม Cancel

14. เพิ่มบรรทัดรหัสต่อไปนี้:

Private Sub CommandButton2_Click()

Unload Me

End Sub

ผลลัพธ์เมื่อคุณเลือกความเร็วและคลิกตกลง

กล่องคำสั่งผสมหลายคอลัมน์

กล่องคำสั่งผสมหลายคอลัมน์

อ่านเพิ่มเติมได้ที่: