Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

ขึ้นอยู่กับสถานการณ์ คุณอาจต้องเลือกหลายค่าในรายการหล่น ในบทช่วยสอนนี้ เราจะแสดงวิธีเลือกหลายรายการในรายการหล่น สำหรับเซสชันนี้ เราใช้ Excel 2019 โปรดใช้เวอร์ชันที่คุณชอบ

ก่อนเข้าสู่เนื้อหา มารู้จักชุดข้อมูลที่เป็นพื้นฐานของตัวอย่างของเรา

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

ที่นี่เรามีรายการเครื่องเขียนหลายอย่าง ใช้สร้างรายการหล่นและเลือกหลายรายการ

โปรดสังเกตว่านี่คือชุดข้อมูลง่ายๆ เพื่อให้เข้าใจง่าย ในสถานการณ์จริง อาจพบชุดข้อมูลใหญ่และซับซ้อนกว่านี้มาก

สมุดงานฝึกฝน

คุณสามารถดาวน์โหลดสมุดงานฝึกฝนจากลิงก์ด้านล่างได้

การเลือกหลายรายการใน Drop-Down List

ขั้นแรก เราต้องสร้างรายการหล่นจากเครื่องเขียนของเรา มาสร้างดูไว้ อย่าลังเลไปอ่านบทความเกี่ยวกับการสร้างรายการหล่น

ในกล่องโต้ตอบ Data Validation เลือกประเภทข้อมูล LIST และใส่ช่วงเซลล์ของรายการ

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

B4:B11 คือช่วงที่เก็บรายการเครื่องเขียน ตอนนี้คุณจะพบรายการหล่น

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

อ่านเพิ่มเติม: Excel Drop Down List Depending on Selection

1. เลือกหลายรายการ (อนุญาตให้เลือกซ้ำ)

รายการหล่นแบบดั้งเดิมเลือกได้แค่รายการเดียว ที่นี่คุณเห็น เราเลือก Pen จากรายการ (ภาพด้านล่าง)

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

ตอนนี้ หากเราเลือกรายการอื่น สมมติ Pencil

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

มันจะแทนที่ค่าก่อนหน้า เหลือแค่ Pencil ที่ถูกเลือก

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

เพื่อเลือกหลายรายการ เราต้องใช้โค้ด VBA เปิดหน้าต่าง Microsoft Visual Basic for Applications (กด ALT + F11 เพื่อเปิด)

ดับเบิลคลิกที่ชื่อหรือหมายเลขชีตงาน ที่คุณต้องการเลือกหลายรายการในรายการหล่น คุณจะพบหน้าต่างโค้ดสำหรับชีตนั้น

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

นี่คือหน้าต่างโค้ดสำหรับ Sheet2 ในสมุดงานของเรา (เรามีรายการหล่นในชีตนี้)

เมื่อเปิดหน้าต่างโค้ดแล้ว ใส่โค้ดต่อไปนี้

Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String On Error GoTo Exitsub If Target.Address = "$D$4" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.Undo Oldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else Target.Value = Oldvalue & ", " & Newvalue End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub

 

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

บันทึกโค้ด และลองเลือกรายการในรายการหล่น

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

หลังเลือก Pencil เราจะเลือกรายการอื่น Notebook และคุณเห็น เราพบทั้งสองรายการ (ภาพด้านล่าง)

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

โค้ดนี้อนุญาตให้เลือกซ้ำ สมมติถ้าเราเลือก Pencil อีกครั้ง

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

เราจะพบรายการนั้นอีกครั้งในกล่องเลือก

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

คำอธิบายโค้ด

เราประกาศสตริงสองตัว Oldvalue และ Newvalue

คุณเห็นเราสร้างรายการหล่นในเซลล์ D4 นั่นคือที่อยู่เป้าหมายคือ D4 และเพิ่มเติม เราตรวจสอบอีกครั้งว่าเซลล์ใช้ Data Validation หรือไม่ โดย Target.SpecialCells

เมื่อเลือกค่าแล้ว เราปิดอีเวนต์ (Application.EnableEvents = False) เพื่อไม่ให้การเปลี่ยนแปลงกระตุ้นอีเวนต์ซ้ำ จากนั้นเก็บรายการที่เลือกไว้ใน Newvalue

หลังจาก Undo การเปลี่ยนแปลง เราตั้งค่าเป็น Oldvalue ตรวจสอบว่า Oldvalue ว่างหรือไม่ หากว่าง (หมายถึงเลือกแค่ค่าเดียว) คืนค่า Newvalue มิฉะนั้น รวม Oldvalue และ Newvalue

ก่อนจบ รีเซ็ตอีเวนต์ เพื่อให้สามารถเปลี่ยนแปลงได้หากต้องการ

อ่านเพิ่มเติม: Multiple Dependent Drop-Down List Excel VBA

2. เลือกหลายรายการจาก Drop Down List (เลือกได้เฉพาะค่าที่ไม่ซ้ำ)

ในส่วนก่อน เราเห็นการเลือกหลายรายการที่อนุญาตให้ซ้ำ หากคุณไม่ต้องการ ให้ทำตามส่วนนี้

เพื่อความสะดวก เราใช้ชีตแยกสำหรับสาธิต คราวนี้เราอยู่ที่ Sheet3 เขียนโค้ดต่อไปนี้ในหน้าต่างโค้ดสำหรับชีตนี้

Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String Application.EnableEvents = True On Error GoTo Exitsub If Target.Address = "$D$4" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.Undo Oldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else If InStr(1, Oldvalue, Newvalue) = 0 Then Target.Value = Oldvalue & ", " & Newvalue Else: Target.Value = Oldvalue End If End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub 

 

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

มีความแตกต่างจากโค้ดก่อนหน้าหรือไม่! ดูใกล้ๆ คุณจะเห็นความแตกต่างเล็กน้อย

ที่นี่เราใช้ฟังก์ชัน VBA ชื่อ INSTR ฟังก์ชัน INSTR คืนตำแหน่งของการเกิดขึ้นครั้งแรกของสตริงย่อยในสตริง อ่านบทความ INSTR เพื่อข้อมูลเพิ่มเติม

ใช้การดำเนินการตรรกะกับ InStr(1, Oldvalue, Newvalue) = 0 เราตรวจสอบว่าพบค่าเหล่านั้นหรือไม่ หากการดำเนินการตรรกะคืนค่า TRUE (ไม่พบก่อนหน้า) จะอนุญาตให้เลือกรายการและรวมกับค่าก่อนหน้า

บันทึกโค้ด และลองเลือกรายการที่เคยเลือกแล้ว

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

ที่นี่เราเลือก Pencil ไปแล้ว หากต้องการเลือกอีกครั้ง ไม่ได้ มันไม่อนุญาตให้ค่าซ้ำ

อ่านเพิ่มเติม: วิธีสร้าง Drop Down List จากชีตอื่นใน Excel

3. เลือกรายการในบรรทัดใหม่

จนตอนนี้ เราพบรายการคั่นด้วยจุลภาค ในส่วนนี้ เราจะจัดรายการที่เลือกในบรรทัดใหม่

เพื่อความง่าย เรารวมเซลล์บางส่วนกับเซลล์ D4 เลือกเซลล์ที่ต้องการรวม และคลิก Merge & Center จากส่วน Alignment ของแท็บ Home

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

เซลล์จะได้ความสูงมากขึ้น

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

มาดูโค้ดสำหรับแยกรายการด้วยบรรทัดใหม่ ใช้โค้ดต่อไปนี้

Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String Application.EnableEvents = True On Error GoTo Exitsub If Target.Address = "$D$4" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.Undo Oldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else If InStr(1, Oldvalue, Newvalue) = 0 Then Target.Value = Oldvalue & vbNewLine & Newvalue Else: Target.Value = Oldvalue End If End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub

 

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

ความแตกต่างจากโค้ดก่อนหน้าคือ คราวนี้เราใช้ vbNewLine ระหว่าง OldValue และ NewValue

vbNewLine ให้บรรทัดใหม่ระหว่างรายการ

ตอนนี้ เลือกรายการ

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

เราเลือกรายการ Pen ที่แสดงในภาพด้านบน ตอนนี้เลือกอีกองค์ประกอบ

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

คุณจะพบสองรายการอยู่ในบรรทัดต่างกัน

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

ที่นี่เรามีสองค่า อยู่ในสองบรรทัดต่างกัน การเลือกรายการอื่นจะเพิ่มเข้าไปในบรรทัดใหม่ ทุกค่าจะอยู่ในบรรทัดใหม่

เลือกหลายรายการจาก Drop-Down List ใน Excel – 3 วิธีที่พิสูจน์แล้ว

โปรดสังเกต หากคุณต้องการตัวคั่นอื่น ให้ใช้ตัวคั่นนั้นในเครื่องหมายคำพูดคู่ แทน vbNewline

สรุป

จบบทความวันนี้ เราแสดงหลายวิธีการเลือกหลายรายการในรายการหล่น หวังว่าจะเป็นประโยชน์ โปรดคอมเมนต์หากมีอะไรยากที่จะเข้าใจ แจ้งให้เรารู้วิธีอื่นที่เราพลาดไป

การอ่านเพิ่มเติม

  • วิธีสร้าง Drop Down List ในหลายคอลัมน์ใน Excel (3 วิธี)
  • Link a Cell Value with a Drop Down List in Excel (5 Ways)
  • Conditional Drop Down List in Excel (Create, Sort and Use)
  • Create Dynamic Dependent Drop Down List in Excel
  • วิธีใช้ IF Statement สร้าง Drop-Down List ใน Excel
  • VLOOKUP with Drop Down List in Excel