เลือกหลายรายการในรายการแบบเลื่อนลงของ Excel – คู่มือฉบับเต็ม
รายการแบบเลื่อนลงของ Excel เป็นเครื่องมือที่ยอดเยี่ยมในการรับรองความสอดคล้องของข้อมูลและง่ายต่อการป้อนข้อมูล อย่างไรก็ตาม ตามค่าเริ่มต้น จะจำกัดให้คุณเลือกเพียงรายการเดียว แต่ถ้าคุณต้องการเลือกหลายรายการจากรายการแบบเลื่อนลงเดียวกันล่ะ คู่มือที่ครอบคลุมนี้จะสำรวจวิธีการเปิดใช้งานการเลือกหลายรายการในรายการดรอปดาวน์ของ Excel จัดการรายการซ้ำ ตั้งค่าตัวคั่นแบบกำหนดเอง และกำหนดขอบเขตของรายการเหล่านี้
- อนุญาตให้มีรายการที่ซ้ำกัน
- การลบรายการที่มีอยู่
- การตั้งค่าตัวคั่นแบบกำหนดเอง
- การตั้งค่าช่วงที่กำหนด
- ดำเนินการในแผ่นงานที่มีการป้องกัน
การเปิดใช้งานการเลือกหลายรายการในรายการแบบหล่นลง
ส่วนนี้มีสองวิธีที่จะช่วยให้คุณเปิดใช้งานการเลือกหลายรายการในรายการแบบเลื่อนลงใน Excel
การใช้โค้ด VBA
หากต้องการอนุญาตให้เลือกหลายรายการในรายการแบบดรอปดาวน์ คุณสามารถใช้ Visual Basic สำหรับแอปพลิเคชัน (VBA) ใน Excel สคริปต์สามารถปรับเปลี่ยนลักษณะการทำงานของรายการแบบเลื่อนลงเพื่อให้เป็นรายการแบบปรนัยได้ กรุณาทำดังนี้.
ขั้นตอนที่ 1: เปิดตัวแก้ไขชีต (รหัส)
- เปิดแผ่นงานที่มีรายการดรอปดาวน์ที่คุณต้องการเปิดใช้งานการเลือกหลายรายการ
- คลิกขวาที่แท็บแผ่นงานแล้วเลือก ดูรหัส จากเมนูบริบท
ขั้นตอนที่ 2: ใช้โค้ด VBA
ตอนนี้คัดลอกโค้ด VBA ต่อไปนี้แล้ววางลงในหน้าต่างเปิดแผ่นงาน (รหัส)
รหัส VBA: เปิดใช้งานการเลือกหลายรายการในรายการแบบเลื่อนลงของ Excel
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
Dim delimiter As String
Dim TargetRange As Range
Set TargetRange = Me.UsedRange ' Users can change target range here
delimiter = ", " ' Users can change the delimiter here
If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
On Error Resume Next
Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
If xRng Is Nothing Then Exit Sub
Application.EnableEvents = False
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" And xValue2 <> "" Then
If Not (xValue1 = xValue2 Or _
InStr(1, xValue1, delimiter & xValue2) > 0 Or _
InStr(1, xValue1, xValue2 & delimiter) > 0) Then
Target.Value = xValue1 & delimiter & xValue2
Else
Target.Value = xValue1
End If
End If
Application.EnableEvents = True
On Error GoTo 0
End Sub
ผล
เมื่อคุณกลับไปที่เวิร์กชีต รายการดรอปดาวน์จะช่วยให้คุณเลือกตัวเลือกต่างๆ ได้ โปรดดูการสาธิตด้านล่าง:
รหัส VBA ข้างต้น:
- ใช้กับรายการดรอปดาวน์การตรวจสอบข้อมูลทั้งหมดในเวิร์กชีตปัจจุบัน ทั้งที่มีอยู่และที่สร้างขึ้นในอนาคต
- ป้องกันไม่ให้คุณเลือกรายการเดียวกันมากกว่าหนึ่งครั้งในแต่ละรายการแบบเลื่อนลง
- ใช้ลูกน้ำเป็นตัวคั่นสำหรับรายการที่เลือก หากต้องการใช้ตัวคั่นอื่นๆ โปรด ดูส่วนนี้เพื่อเปลี่ยนตัวคั่น.
ใช้ Kutools สำหรับ Excel ได้ในไม่กี่คลิก
หากคุณไม่คุ้นเคยกับ VBA ทางเลือกที่ง่ายกว่าก็คือ Kutools สำหรับ Excel's เลือกรายการแบบหล่นลงได้หลายรายการ คุณสมบัติ. เครื่องมือที่เป็นมิตรต่อผู้ใช้นี้ช่วยลดความยุ่งยากในการเปิดใช้งานการเลือกหลายรายการในรายการแบบเลื่อนลง ช่วยให้คุณสามารถปรับแต่งตัวคั่นและจัดการรายการซ้ำได้อย่างง่ายดายเพื่อตอบสนองความต้องการที่แตกต่างกันของคุณ
หลังจาก การติดตั้ง Kutools สำหรับ Excelไปที่ Kutools เลือก รายการแบบหล่นลง > เลือกรายการแบบหล่นลงได้หลายรายการ. จากนั้นคุณจะต้องกำหนดค่าดังนี้
- ระบุช่วงที่มีรายการแบบเลื่อนลงที่คุณต้องการเลือกหลายรายการ
- ระบุตัวคั่นสำหรับรายการที่เลือกในเซลล์รายการแบบหล่นลง
- คลิก OK เพื่อทำการตั้งค่าให้เสร็จสมบูรณ์
ผล
ตอนนี้ เมื่อคุณคลิกเซลล์ที่มีรายการแบบเลื่อนลงในช่วงที่ระบุ กล่องรายการจะปรากฏขึ้นข้างๆ เพียงคลิกปุ่ม "+" ถัดจากรายการต่างๆ เพื่อเพิ่มลงในเซลล์แบบเลื่อนลง และคลิกปุ่ม "-" เพื่อลบรายการใดๆ ที่คุณไม่ต้องการอีกต่อไป ดูการสาธิตด้านล่าง:
- ตรวจสอบ ตัดข้อความหลังจากแทรกตัวคั่น ตัวเลือกถ้าคุณต้องการแสดงรายการที่เลือกในแนวตั้งภายในเซลล์ หากคุณต้องการรายการแนวนอน ไม่ต้องเลือกตัวเลือกนี้
- ตรวจสอบ เปิดใช้การค้นหา ตัวเลือกหากคุณต้องการเพิ่มแถบค้นหาลงในรายการแบบเลื่อนลงของคุณ
- หากต้องการใช้คุณลักษณะนี้ โปรด ดาวน์โหลดและติดตั้ง Kutools สำหรับ Excel ก่อน
การดำเนินการเพิ่มเติมสำหรับรายการแบบเลื่อนลงแบบเลือกหลายรายการ
ส่วนนี้จะรวบรวมสถานการณ์ต่างๆ ที่อาจจำเป็นเมื่อเปิดใช้งานการเลือกหลายรายการในรายการแบบเลื่อนลงการตรวจสอบข้อมูล
อนุญาตให้รายการที่ซ้ำกันในรายการแบบหล่นลง
รายการซ้ำอาจเป็นปัญหาได้เมื่ออนุญาตให้เลือกได้หลายรายการในรายการแบบเลื่อนลง รหัส VBA ด้านบนไม่อนุญาตให้มีรายการที่ซ้ำกันในรายการแบบเลื่อนลง หากคุณต้องการเก็บรายการที่ซ้ำกัน ให้ลองใช้โค้ด VBA ในส่วนนี้
รหัส VBA: อนุญาตให้ทำซ้ำในรายการแบบเลื่อนลงการตรวจสอบความถูกต้องของข้อมูล
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
Dim delimiter As String
Dim TargetRange As Range
Set TargetRange = Me.UsedRange ' Users can change target range here
delimiter = ", " ' Users can change the delimiter here
If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
On Error Resume Next
Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
If xRng Is Nothing Then Exit Sub
Application.EnableEvents = False
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" And xValue2 <> "" Then
Target.Value = xValue1 & delimiter & xValue2
End If
Application.EnableEvents = True
On Error GoTo 0
End Sub
ผล
ตอนนี้คุณสามารถเลือกหลายรายการจากรายการดรอปดาวน์ในแผ่นงานปัจจุบันได้ หากต้องการทำซ้ำรายการในเซลล์รายการดรอปดาวน์ ให้เลือกรายการนั้นจากรายการต่อไป ดูภาพหน้าจอ:
การลบรายการที่มีอยู่ออกจากรายการแบบเลื่อนลง
หลังจากเลือกหลายรายการจากรายการดรอปดาวน์ บางครั้งคุณอาจต้องลบรายการที่มีอยู่ออกจากเซลล์รายการดรอปดาวน์ ส่วนนี้มีโค้ด VBA อีกชิ้นหนึ่งเพื่อช่วยให้คุณทำงานนี้สำเร็จ
รหัส VBA: ลบรายการที่มีอยู่ออกจากเซลล์รายการแบบเลื่อนลง
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
Dim xRngDV As Range
Dim TargetRange As Range
Dim oldValue As String
Dim newValue As String
Dim delimiter As String
Dim allValues As Variant
Dim valueExists As Boolean
Dim i As Long
Dim cleanedValue As String
Set TargetRange = Me.UsedRange ' Set your specific range here
delimiter = ", " ' Set your desired delimiter here
If Target.CountLarge > 1 Then Exit Sub
' Check if the change is within the specific range
If Intersect(Target, TargetRange) Is Nothing Then Exit Sub
On Error Resume Next
Set xRngDV = Target.SpecialCells(xlCellTypeAllValidation)
If xRngDV Is Nothing Or Target.Value = "" Then
' Skip if there's no data validation or if the cell is cleared
Application.EnableEvents = True
Exit Sub
End If
On Error GoTo 0
If Not Intersect(Target, xRngDV) Is Nothing Then
Application.EnableEvents = False
newValue = Target.Value
Application.Undo
oldValue = Target.Value
Target.Value = newValue
' Split the old value by delimiter and check if new value already exists
allValues = Split(oldValue, delimiter)
valueExists = False
For i = LBound(allValues) To UBound(allValues)
If Trim(allValues(i)) = newValue Then
valueExists = True
Exit For
End If
Next i
' Add or remove value based on its existence
If valueExists Then
' Remove the value
cleanedValue = ""
For i = LBound(allValues) To UBound(allValues)
If Trim(allValues(i)) <> newValue Then
If cleanedValue <> "" Then cleanedValue = cleanedValue & delimiter
cleanedValue = cleanedValue & Trim(allValues(i))
End If
Next i
Target.Value = cleanedValue
Else
' Add the value
If oldValue <> "" Then
Target.Value = oldValue & delimiter & newValue
Else
Target.Value = newValue
End If
End If
Application.EnableEvents = True
End If
End Sub
ผล
โค้ด VBA นี้ให้คุณเลือกหลายรายการจากรายการแบบเลื่อนลง และลบรายการใดๆ ที่คุณเลือกไว้แล้วได้อย่างง่ายดาย หลังจากเลือกหลายรายการแล้ว หากคุณต้องการลบรายการใดรายการหนึ่ง ให้เลือกรายการนั้นอีกครั้งจากรายการ
การตั้งค่าตัวคั่นแบบกำหนดเอง
ตัวคั่นถูกตั้งค่าเป็นลูกน้ำในรหัส VBA ข้างต้น คุณสามารถแก้ไขตัวแปรนี้เป็นอักขระที่ต้องการเพื่อใช้เป็นตัวคั่นสำหรับการเลือกรายการแบบหล่นลง นี่คือวิธีที่คุณสามารถทำได้:
ดังที่คุณเห็นว่าโค้ด VBA ข้างต้นทั้งหมดมีบรรทัดต่อไปนี้:
delimiter = ", "
คุณเพียงแค่ต้องเปลี่ยนเครื่องหมายจุลภาคเป็นตัวคั่นตามที่คุณต้องการ ตัวอย่างเช่น คุณต้องการแยกรายการด้วยเครื่องหมายอัฒภาค ให้เปลี่ยนบรรทัดเป็น:
delimiter = "; "
delimiter = vbNewLine
การตั้งค่าช่วงที่กำหนด
รหัส VBA ข้างต้นใช้กับรายการแบบเลื่อนลงทั้งหมดในแผ่นงานปัจจุบัน หากคุณต้องการให้โค้ด VBA ใช้กับรายการแบบเลื่อนลงบางช่วงเท่านั้น คุณสามารถระบุช่วงในโค้ด VBA ด้านบนได้ดังนี้
ดังที่คุณเห็นว่าโค้ด VBA ข้างต้นทั้งหมดมีบรรทัดต่อไปนี้:
Set TargetRange = Me.UsedRange
คุณเพียงแค่ต้องเปลี่ยนบรรทัดเป็น:
Set TargetRange = Me.Range("C2:C10")
ดำเนินการในแผ่นงานที่มีการป้องกัน
ลองนึกภาพว่าคุณได้ป้องกันแผ่นงานด้วยรหัสผ่าน "123" และตั้งค่าเซลล์รายการแบบเลื่อนลงเป็น "ปลดล็อค" ก่อนที่จะเปิดใช้งานการป้องกัน ดังนั้น จึงมั่นใจได้ว่าฟังก์ชันการเลือกหลายรายการยังคงทำงานอยู่หลังจากการป้องกัน อย่างไรก็ตาม รหัส VBA ที่กล่าวถึงข้างต้นไม่สามารถทำงานได้ในกรณีนี้ และส่วนนี้จะอธิบายสคริปต์ VBA อื่นที่ได้รับการออกแบบมาโดยเฉพาะเพื่อจัดการกับฟังก์ชันการทำงานแบบเลือกหลายรายการ ในแผ่นงานที่ได้รับการป้องกัน
รหัส VBA: เปิดใช้งานการเลือกหลายรายการในรายการแบบเลื่อนลงโดยไม่มีการซ้ำกัน
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
Dim delimiter As String
Dim TargetRange As Range
Dim isProtected As Boolean
Dim pswd As Variant
Set TargetRange = Me.UsedRange ' Set your specific range here
delimiter = ", " ' Users can change the delimiter here
If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
' Check if sheet is protected
isProtected = Me.ProtectContents
If isProtected Then
' If protected, temporarily unprotect. Adjust or remove the password as needed.
pswd = "yourPassword" ' Change or remove this as needed
Me.Unprotect Password:=pswd
End If
On Error Resume Next
Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
If xRng Is Nothing Then
If isProtected Then Me.Protect Password:=pswd
Exit Sub
End If
Application.EnableEvents = False
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" And xValue2 <> "" Then
If Not (xValue1 = xValue2 Or _
InStr(1, xValue1, delimiter & xValue2) > 0 Or _
InStr(1, xValue1, xValue2 & delimiter) > 0) Then
Target.Value = xValue1 & delimiter & xValue2
Else
Target.Value = xValue1
End If
End If
Application.EnableEvents = True
On Error GoTo 0
' Re-protect the sheet if it was protected
If isProtected Then
Me.Protect Password:=pswd
End If
End Sub
ด้วยการเปิดใช้งานตัวเลือกหลายรายการในรายการดรอปดาวน์ของ Excel คุณสามารถปรับปรุงฟังก์ชันการทำงานและความยืดหยุ่นของแผ่นงานของคุณได้อย่างมาก ไม่ว่าคุณจะพอใจกับการเขียนโค้ด VBA หรือต้องการโซลูชันที่ตรงไปตรงมามากกว่าเช่น Kutools ตอนนี้คุณสามารถแปลงรายการแบบเลื่อนลงมาตรฐานของคุณให้เป็นเครื่องมือแบบเลือกได้หลายแบบไดนามิก ด้วยทักษะเหล่านี้ ตอนนี้คุณก็พร้อมที่จะสร้างเอกสาร Excel แบบไดนามิกและใช้งานง่ายมากขึ้นแล้ว สำหรับผู้ที่ต้องการเจาะลึกถึงความสามารถของ Excel เว็บไซต์ของเรามีบทช่วยสอนมากมาย ค้นพบเคล็ดลับและคำแนะนำเพิ่มเติมเกี่ยวกับ Excel ที่นี่.
บทความที่เกี่ยวข้อง
เติมข้อความอัตโนมัติเมื่อพิมพ์ในรายการแบบเลื่อนลงของ Excel
หากคุณมีรายการแบบเลื่อนลงการตรวจสอบข้อมูลที่มีค่ามากคุณจะต้องเลื่อนลงในรายการเพื่อค้นหาคำที่เหมาะสมหรือพิมพ์ทั้งคำลงในกล่องรายการโดยตรง หากมีวิธีการอนุญาตให้กรอกอัตโนมัติเมื่อพิมพ์ตัวอักษรตัวแรกในรายการแบบเลื่อนลงทุกอย่างจะง่ายขึ้น บทแนะนำนี้มีวิธีการแก้ปัญหา
สร้างรายการแบบหล่นลงจากสมุดงานอื่นใน Excel
มันค่อนข้างง่ายในการสร้างรายการแบบเลื่อนลงสำหรับการตรวจสอบข้อมูลระหว่างแผ่นงานภายในสมุดงาน แต่ถ้าข้อมูลรายการที่คุณต้องการสำหรับการตรวจสอบข้อมูลอยู่ในสมุดงานอื่นคุณจะทำอย่างไร? ในบทช่วยสอนนี้คุณจะได้เรียนรู้วิธีสร้างรายการลดลงจากสมุดงานอื่นใน Excel โดยละเอียด
สร้างรายการดรอปดาวน์ที่ค้นหาได้ใน Excel
สำหรับรายการแบบหล่นลงที่มีค่ามากมายการค้นหารายการที่เหมาะสมไม่ใช่เรื่องง่าย ก่อนหน้านี้เราได้แนะนำวิธีการกรอกรายการแบบเลื่อนลงโดยอัตโนมัติเมื่อป้อนตัวอักษรตัวแรกลงในช่องแบบเลื่อนลง นอกจากฟังก์ชันเติมข้อความอัตโนมัติแล้วคุณยังสามารถค้นหารายการแบบหล่นลงได้เพื่อเพิ่มประสิทธิภาพในการทำงานในการค้นหาค่าที่เหมาะสมในรายการแบบเลื่อนลง หากต้องการค้นหารายการแบบหล่นลงให้ลองใช้วิธีการในบทช่วยสอนนี้
เติมข้อมูลเซลล์อื่นโดยอัตโนมัติเมื่อเลือกค่าในรายการแบบเลื่อนลงของ Excel
สมมติว่าคุณได้สร้างรายการแบบหล่นลงตามค่าในช่วงเซลล์ B8: B14 เมื่อคุณเลือกค่าใด ๆ ในรายการแบบหล่นลงคุณต้องการให้ค่าที่เกี่ยวข้องในช่วงเซลล์ C8: C14 ถูกเติมโดยอัตโนมัติในเซลล์ที่เลือก สำหรับการแก้ปัญหาวิธีการในบทช่วยสอนนี้จะช่วยคุณได้
สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน
เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...
แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก
- เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
- เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
- เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
สารบัญ
- เปิดใช้งานการเลือกหลายรายการ
- การใช้โค้ด VBA
- ใช้ Kutools สำหรับ Excel ได้ในไม่กี่คลิก
- การดำเนินงานเพิ่มเติม
- อนุญาตให้มีรายการที่ซ้ำกัน
- การลบรายการที่มีอยู่
- การตั้งค่าตัวคั่นแบบกำหนดเอง
- การตั้งค่าช่วงที่กำหนด
- ดำเนินการในแผ่นงานที่มีการป้องกัน
- บทความที่เกี่ยวข้อง
- เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด
- ความคิดเห็น