คุณอาจต้องเลือกค่าหลายค่าในรายการดรอปดาวน์ทั้งนี้ขึ้นอยู่กับสถานการณ์ ในบทช่วยสอนนี้ เราจะแสดงวิธีการเลือกหลายรายการในรายการดรอปดาวน์ สำหรับเซสชันนี้ เราใช้ Excel 2019 โปรดใช้เวอร์ชันที่คุณต้องการได้ตามใจชอบ
ก่อนดำดิ่งสู่เซสชั่น เรามาทำความรู้จักกับชุดข้อมูลที่เป็นฐานของตัวอย่างกันก่อน
ที่นี่เรามีองค์ประกอบเครื่องเขียนหลายอย่าง โดยใช้สิ่งเหล่านี้ เราจะสร้างรายการแบบหล่นลงและเลือกหลายรายการที่นั่น
โปรดทราบว่ามันเป็นชุดข้อมูลที่เรียบง่ายเพื่อให้สิ่งต่าง ๆ ตรงไปตรงมา ในสถานการณ์จริง คุณอาจพบชุดข้อมูลขนาดใหญ่และซับซ้อน
สมุดแบบฝึกหัด
คุณสามารถดาวน์โหลดคู่มือการฝึกปฏิบัติได้จากลิงค์ด้านล่าง
การเลือกหลายรายการในรายการแบบเลื่อนลง
ก่อนอื่น เราต้องสร้างรายการดรอปดาวน์โดยอิงจากเครื่องเขียนของเรา มาสร้างมันกันเถอะ อย่าลังเลที่จะเยี่ยมชมบทความเกี่ยวกับการสร้างรายการแบบเลื่อนลง
ใน การตรวจสอบข้อมูล กล่องโต้ตอบ เลือก LIST ชนิดข้อมูลและแทรกช่วงเซลล์ของรายการ
B4:B11 เป็นช่วงที่เก็บองค์ประกอบสเตชันเนอรี ตอนนี้คุณจะพบรายการแบบเลื่อนลง
อ่านเพิ่มเติม: รายการแบบหล่นลงของ Excel ขึ้นอยู่กับการเลือก
1. เลือกหลายรายการ (อนุญาตให้เลือกซ้ำ)
รายการดรอปดาวน์ทั่วไปจะเลือกรายการเดียวเสมอ คุณจะเห็นว่าเราได้เลือก ปากกา จากรายการ (ภาพด้านล่าง)
ทีนี้ ถ้าเราเลือกรายการอื่น สมมติว่า ดินสอ
จากนั้นจะแทนที่ค่าก่อนหน้า เฉพาะ ดินสอ จะยังคงถูกเลือก
ในการเลือกหลายรายการ เราจำเป็นต้องใช้ VBA รหัส. เปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง (กด ALT + F11 เพื่อเปิด)
ตอนนี้ดับเบิลคลิกที่ชื่อเวิร์กชีตหรือหมายเลขที่คุณต้องการเลือกหลายรายการภายในรายการแบบหล่นลง คุณจะพบหน้าต่างรหัสสำหรับแผ่นงานนั้นๆ
นี่คือหน้าต่างรหัสสำหรับ 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
บันทึกรหัสแล้วลองเลือกค่าในรายการแบบเลื่อนลง
หลังจากเลือก ดินสอ เรากำลังจะไปเลือกรายการอื่น Notebook . และคุณจะเห็นว่าเราพบทั้งสองรายการ (ภาพด้านล่าง)
รหัสนี้จะช่วยให้เราทำการเลือกซ้ำได้ สมมติว่าเราเลือก ดินสอ อีกครั้ง
เราจะพบรายการนั้นอีกครั้งในช่องการเลือก
คำอธิบายโค้ด
เราได้ประกาศสองสตริง Oldvalue และ Newvalue .
คุณจะเห็นว่าเราทำรายการแบบเลื่อนลงใน D4 เซลล์ นั่นคือเหตุผลที่ที่อยู่เป้าหมายของเราคือ D4 . นอกจากนี้ เราได้ตรวจสอบอีกครั้งว่าเซลล์นั้นใช้การตรวจสอบความถูกต้องของข้อมูลหรือไม่โดยใช้ Target.SpecialCells .
เมื่อเลือกค่าแล้ว เราจะปิดกิจกรรม (Application.EnableEvents = False
) ดังนั้นการเปลี่ยนแปลงจะไม่ทริกเกอร์เหตุการณ์อีก แล้วเก็บรายการที่เลือกไว้ใน Newvalue .
หลังจากเลิกทำการเปลี่ยนแปลง เราได้ตั้งค่าเป็น Oldvalue . จากนั้นตรวจสอบว่า Oldvalue จะว่างหรือไม่ หากว่างเปล่า (หมายถึงเลือกเพียงหนึ่งค่า) ให้ส่งคืน Newvalue . มิฉะนั้น เชื่อม Oldvalue และ Newvalue .
ก่อนสิ้นสุดการรีเซ็ตกิจกรรมเพื่อให้เราสามารถเปลี่ยนแปลงได้หากจำเป็น
อ่านเพิ่มเติม: รายการดรอปดาวน์ Excel VBA ที่ขึ้นต่อกันหลายรายการ
2. เลือกหลายรายการจากรายการแบบหล่นลง (เฉพาะการเลือกที่ไม่ซ้ำ)
ในส่วนก่อนหน้านี้ เราได้เห็นการเลือกหลายรายการซึ่งอนุญาตให้ทำซ้ำได้ หากคุณไม่ต้องการให้ทำตามส่วนนี้
เพื่อความสะดวก เราใช้แผ่นงานแยกต่างหากสำหรับการสาธิตนี้ คราวนี้เราอยู่ที่ 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
มีความแตกต่างเมื่อเทียบกับรหัสก่อนหน้าหรือไม่! มองเข้าไปใกล้ๆ คุณจะเห็นความแตกต่างเล็กน้อย
ที่นี่เราใช้ VBA ฟังก์ชันที่เรียกว่า INSTR . INSTR ฟังก์ชันส่งคืนตำแหน่งการเกิดขึ้นครั้งแรกของสตริงย่อยในสตริง เยี่ยมชมบทความ INSTR นี้สำหรับข้อมูลเพิ่มเติม
การใช้การดำเนินการทางตรรกะนี้กับ InStr (1, Oldvalue, Newvalue) =0 เราได้ตรวจสอบว่าพบค่าหรือไม่ หากการดำเนินการทางตรรกะส่งคืน TRUE (ไม่พบก่อนหน้านี้) จากนั้นจะช่วยให้สามารถเลือกรายการและเชื่อมกับค่าก่อนหน้าได้
บันทึกรหัสแล้วลองเลือกรายการที่เลือกแล้ว
ที่นี่เราได้เลือก ดินสอ . แล้ว หากเราต้องการเลือกอีกครั้ง เราไม่สามารถ ไม่อนุญาตให้มีค่าที่ซ้ำกัน
อ่านเพิ่มเติม: วิธีสร้างรายการแบบหล่นลงจากชีตอื่นใน Excel
3. เลือกรายการในบรรทัดใหม่
จนถึงตอนนี้ เราพบว่ารายการต่างๆ คั่นด้วยเครื่องหมายจุลภาค ในส่วนนี้เราจะจัดเรียงรายการที่เลือกในบรรทัดใหม่
เพื่อความง่าย เรากำลังรวมเซลล์สองสามเซลล์กับ D4 เซลล์ ในการดำเนินการดังกล่าว ให้เลือกเซลล์ที่คุณต้องการผสานแล้วคลิก ผสาน &จัดกึ่งกลาง จาก การจัดตำแหน่ง ส่วนของ หน้าแรก แท็บ
เซลล์จะมีความสูงเพิ่มขึ้น
ตอนนี้ มาดูโค้ดสำหรับแยกรายการด้วยการขึ้นบรรทัดใหม่กัน ใช้โค้ดต่อไปนี้
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
ความแตกต่างเพียงอย่างเดียวจากโค้ดก่อนหน้านี้คือ ครั้งนี้เราใช้ vbNewLine อยู่ระหว่าง OldValue และ NewValue .
vbNewLine ให้บรรทัดใหม่ระหว่างรายการ
ตอนนี้เลือกรายการ
เราเลือกรายการ ปากกา ที่แสดงในภาพด้านบน ตอนนี้เลือกองค์ประกอบอื่น
คุณจะพบว่าทั้งสองรายการอยู่ในบรรทัดที่แตกต่างกัน
ในที่นี้ เรามีค่าสองค่า ซึ่งอยู่ในสองบรรทัดที่ต่างกัน การเลือกค่าอื่นจะเพิ่มค่านั้นไปยังบรรทัดอื่น ทุกค่าจะขึ้นบรรทัดใหม่
โปรดทราบว่าหากคุณต้องการให้ตัวคั่นอื่นแยกรายการ ให้ใช้เครื่องหมายอัญประกาศคู่แทน vbNewline .
บทสรุป
นั่นคือทั้งหมดสำหรับวันนี้ เราได้ระบุวิธีการต่างๆ ในการเลือกหลายรายการในรายการแบบหล่นลง หวังว่าคุณจะพบว่าสิ่งนี้มีประโยชน์ รู้สึกอิสระที่จะแสดงความคิดเห็นหากมีอะไรที่ดูเหมือนเข้าใจยาก แจ้งให้เราทราบวิธีการอื่นๆ ที่เราพลาดไปที่นี่
อ่านเพิ่มเติม
- วิธีสร้างรายการแบบหล่นลงในหลายคอลัมน์ใน Excel (3 วิธี)
- เชื่อมโยงค่าของเซลล์กับรายการดรอปดาวน์ใน Excel (5 วิธี)
- รายการแบบเลื่อนลงตามเงื่อนไขใน Excel (สร้าง จัดเรียง และใช้งาน)
- สร้างรายการดรอปดาวน์ขึ้นอยู่กับไดนามิกใน Excel
- วิธีใช้คำสั่ง IF เพื่อสร้างรายการดรอปดาวน์ใน Excel
- VLOOKUP พร้อมรายการดรอปดาวน์ใน Excel