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

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

ในบทความนี้ เราจะเรียนรู้วิธีสร้าง excel data validation drop-down list ที่รองรับการเลือกหลายรายการ (multiple selection) ขณะที่เราใช้ data validation ปกติ จะอนุญาตให้เลือกได้เพียงรายการเดียวจากลิสต์ แต่ ถ้าเราต้องการเลือกหลายรายการจากเมนูดรอปดาวน์ของ data validation list จะทำอย่างไร ดังนั้น ในบทช่วยสอนนี้ เราจะใช้แมโครบางตัวเพื่อแก้ไขข้อจำกัดของการเลือกหลายรายการจาก data validation drop-down list

คุณสามารถดาวน์โหลดสมุดงานฝึกปฏิบัติได้จากที่นี่

3 ตัวอย่าง สร้าง Data Validation Drop-Down List รองรับ Multiple Selection ใน Excel

กระบวนการใช้ VBA macro เพื่อสร้าง data validation drop-down list ที่รองรับ multiple selections เป็นกระบวนการที่ค่อนข้างซับซ้อน ดังนั้น เพื่อให้เข้าใจง่ายขึ้น เราจะสาธิต 3 ตัวอย่างที่แตกต่างกันของการเลือกหลายรายการจาก data validation drop-down list

1. สร้าง Excel Data Validation Drop-Down List สำหรับ Multiple Selection ในเซลล์เดียว

ก่อนอื่น เรามีชุดข้อมูลต่อไปนี้ ซึ่งประกอบด้วยชื่อของ 4 ประเทศ เราต้องการสร้าง data validation drop-down list ที่รองรับการเลือกหลายรายการจากชื่อเหล่านี้ ปกติ data validation จะอนุญาตให้เลือกชื่อประเทศเดียวในเซลล์เดียว แต่ เราต้องการป้อนชื่อหลายประเทศจาก data validation list ในเซลล์เดียว

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

มา看看ขั้นตอนในการดำเนินการนี้

ขั้นตอน:

  • ขั้นแรก เลือกช่วงเซลล์ (D4:D8) ตั้งชื่อช่วง (name range) เป็น 'dv_list_0'

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • ขั้นที่สอง เลือกช่วงเซลล์ (B5:B8) และตั้งชื่อช่วงเป็น 'Country_Range'

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • ขั้นที่สาม ไปที่ Data > Data Tools > Data Validation > Data Validation

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • การกระทำข้างต้นจะเปิดกล่องโต้ตอบใหม่ชื่อ 'Data Validation'
  • ต่อไป เลือกตัวเลือก List จาก Allow ใส่สูตรต่อไปนี้ในช่องข้อความ Source:
=dv_list_0
  • คลิก OK

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • ดังนั้น ไอคอนดรอปดาวน์จะปรากฏที่ด้านขวาของเซลล์ที่เลือก

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • จากนั้น คลิกขวา ที่ชื่อแผ่นงานของแผ่นงานที่ใช้งานอยู่ เลือกตัวเลือก 'View Code'

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • คำสั่งข้างต้นจะเปิด VBA module ว่าง ใส่โค้ดต่อไปนี้ใน module นั้น:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Value_Old As String
    Dim Value_New As String
    If Target.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Not Intersect(Target, ActiveSheet.Range("Country_Range")) Is Nothing Then
        Application.EnableEvents = False
        Value_New = Target.Value
        On Error Resume Next
        Application.Undo
        On Error GoTo 0
        Value_Old = Target.Value
        If InStr(Value_Old, Value_New) Then
            If InStr(Value_Old, ",") Then
                If InStr(Value_Old, ", " & Value_New) Then
                    Target.Value = Replace(Value_Old, ", " & Value_New, "")
                Else
                    Target.Value = Replace(Value_Old, Value_New & ", ", "")
                End If
            Else
                Target.Value = ""
            End If
        Else
            If Value_Old = "" Then
                Target.Value = Value_New
            Else
                If Value_New = "" Then
                    Target.Value = ""
                Else
                    If InStr(Target.Value, Value_New) = 0 Then
                        Target.Value = Value_Old & ", " & Value_New
                    End If
                End If
            End If
        End If
        Application.EnableEvents = True
    Else
        Exit Sub
    End If
End Sub
  • คลิกปุ่ม Run หรือกดปุ่ม F5 เพื่อรันโค้ด

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • ตอนนี้ เราจะตั้งชื่อให้แมโครและคลิก Run ชื่อของ Macro สำหรับตัวอย่างนี้คือ VBA

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • หลังจากนั้น เลือก USA จากเมนูดรอปดาวน์ของเซลล์ B5 มันจะป้อนชื่อประเทศ USA ในเซลล์ B5

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • สุดท้าย เลือก Canada และ Mexico จากดรอปดาวน์ด้วย เราเห็นว่าค่าทั้งหมดจากเมนูดรอปดาวน์ถูกเลือกในเซลล์เดียว

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

อ่านเพิ่มเติม: วิธีสร้าง Excel Drop Down List สำหรับ Data Validation (8 วิธี)

2. แทรก Multiple Selection ไปยังคอลัมน์ติดกัน โดยสร้าง Excel Data Validation Drop-Down List

ในตัวอย่างที่สอง เราจะสร้าง data validation drop-down list สำหรับ multiple selections ในคอลัมน์ที่ติดกัน หากเราเลือกรายการใดจาก data validation drop-down list มันจะถูกเลือกอัตโนมัติในคอลัมน์ที่ติดกัน เราจะดำเนินต่อด้วยชุดข้อมูลก่อนหน้าเพื่อสาธิตตัวอย่างนี้

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

มา看看ขั้นตอนในการแก้ตัวอย่างนี้

ขั้นตอน:

  • ก่อนอื่น เลือกเซลล์ D5 สร้าง data validation drop-down เหมือนวิธีก่อนหน้า ใช้ช่วง (B5:B8) เป็นค่า source สำหรับ validation

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • ต่อไป คลิกขวา ที่ชื่อแผ่นงานที่ใช้งานอยู่ และเลือกตัวเลือก 'View Code'

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • VBA module ใหม่ว่าง จะเปิดขึ้น เขียนโค้ดต่อไปนี้ใน module ว่างนั้น:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo exitHandler
    Dim DV_Range As Range
    Dim Col_i As Integer
    If Target.Count > 1 Then GoTo exitHandler
    On Error Resume Next
    Set DV_Range = Cells.SpecialCells(xlCellTypeAllValidation)
    On Error GoTo exitHandler
    If DV_Range Is Nothing Then GoTo exitHandler
    If Intersect(Target, DV_Range) Is Nothing Then
    Else
        Application.EnableEvents = False
        If Target.Column = 4 Then
            If Target.Value = "" Then GoTo exitHandler
            If Target.Validation.Value = True Then
                Col_i = Cells(Target.Row, Columns.Count).End(xlToLeft).Column + 1
                Cells(Target.Row, Col_i).Value = Target.Value
            Else
                MsgBox "Invalid entry"
                Target.Activate
            End If
        End If
    End If
exitHandler:
    Application.EnableEvents = True
End Sub
  • กดปุ่ม F5 หรือคลิกที่ไอคอน Run เพื่อรันโค้ด

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • จากนั้น กล่องโต้ตอบใหม่ชื่อ Macros จะปรากฏ สร้างแมโครชื่อ VBA1 และคลิก Run

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • หลังจากนั้น จากไอคอนดรอปดาวน์ของเซลล์ D5 เลือกประเทศชื่อ USA

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • คำสั่งข้างต้นป้อนชื่อประเทศ USA ในเซลล์ E5 ซึ่งอยู่ในคอลัมน์ E ที่ติดกัน

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • สุดท้าย เลือก Canada และ Mexico เราเห็นว่าค่าที่เลือกไปไว้ในคอลัมน์ที่ติดกันตามลำดับ

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

อ่านเพิ่มเติม: Default Value in Data Validation List with Excel VBA (Macro and UserForm)

บทความคล้ายกัน:

  • Autocomplete Data Validation Drop Down List in Excel (2 Methods)
  • วิธีสร้าง Data Validation List จากตารางใน Excel (3 วิธี)
  • Apply Multiple Data Validation in One Cell in Excel (3 Examples)
  • วิธيلบช่องว่างจาก Data Validation List ใน Excel (5 วิธี)
  • Excel Data Validation Alphanumeric Only (Using Custom Formula)

3. ทำ Multiple Selection ในแถวแยกกัน ด้วย Data Validation Drop-Down List ใน Excel

ตัวอย่างที่สาม คล้ายตัวอย่างที่สองมาก ในตัวอย่างที่สอง multiple selections เกิดขึ้นในคอลัมน์ที่ติดกัน ในขณะที่ในตัวอย่างนี้ multiple selections จะเกิดขึ้นในแถวแยกกัน ตัวอย่างเช่น เพื่อสร้าง data validation drop-down list สำหรับ multiple selections ในตัวอย่างนี้ เราจะดำเนินต่อด้วยชุดข้อมูลที่เราใช้ในตัวอย่างก่อนหน้า

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

มาผ่านขั้นตอนในการดำเนินการนี้

ขั้นตอน:

  • ในตอนแรก เลือกเซลล์ D5 เหมือนกับขั้นตอนก่อนหน้า สร้าง data validation drop-down ใช้ช่วง (B5:B8) เป็นค่า source สำหรับ validation

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • ต่อไป คลิกขวา ที่แผ่นงานที่ใช้งานอยู่ จากตัวเลือกที่มี ให้เลือก 'View Code'

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • การกระทำข้างต้นเปิด VBA module ว่าง ใส่โค้ดต่อไปนี้ใน module นั้น:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo exitHandler
    Dim DV_Range As Range
    Dim Row_1 As Long
    Dim Col_1 As Long
    Col_1 = Target.Column
    If Target.Count > 1 Then GoTo exitHandler
    On Error Resume Next
    Set DV_Range = Cells.SpecialCells(xlCellTypeAllValidation)
    On Error GoTo exitHandler
    If DV_Range Is Nothing Then GoTo exitHandler
    If Intersect(Target, DV_Range) Is Nothing Then
    Else
        If Target.Value = "" Then GoTo exitHandler
        Application.EnableEvents = False
        Select Case Target.Column
            Case 4
                If Target.Offset(0, 1).Value = "" Then
                    Row_1 = Target.Row
                Else
                    Row_1 = Cells(Rows.Count, Col_1 + 1).End(xlUp).Row + 1
                End If
                Cells(Row_1, Col_1 + 1).Value = Target.Value
                Target.ClearContents
        End Select
    End If
exitHandler:
    Application.EnableEvents = True
End Sub
  • เพื่อรันโค้ด คลิกที่ไอคอน Run หรือกดปุ่ม F5

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • จากนั้น เราเห็นกล่องโต้ตอบใหม่ชื่อ Macros ตั้งชื่อแมโครเป็น VBA2 และคลิก Run

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • หลังจากนั้น จากรายการดรอปดาวน์ของเซลล์ D5 เลือกตัวเลือก USA

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • ดังนั้น เราเห็นว่าชื่อ USA ปรากฏในแถวเดียวกันแต่ในคอลัมน์ที่ติดกัน

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

  • ในที่สุด เลือก Canada, Mexico, และ England ทีละรายการ เราจะเห็นว่าค่าที่เลือกไปไว้ในคอลัมน์เดียวกันแต่ในแถวแยกกันทีละแถว

สร้าง Excel Data Validation Drop-Down List รองรับการเลือกหลายรายการ

อ่านเพิ่มเติม: Excel Data Validation Drop Down List with Filter (2 Examples)

สรุป

ดังนั้น บทช่วยสอนนี้ให้ภาพรวมของการสร้าง data validation drop-down list สำหรับ multiple selections เพื่อทดสอบทักษะของคุณ ดาวน์โหลดสมุดงานฝึกปฏิบัติที่มาพร้อมกับบทความนี้ โปรดทิ้งความคิดเห็นในกล่องด้านล่าง หากคุณมีคำถาม ทีมของเราจะพยายามตอบกลับโดยเร็วที่สุด ในอนาคต ให้ติดตามโซลูชัน Microsoft Excel ที่นวัตกรรมมากขึ้น

บทความเกี่ยวข้อง

  • วิธีใช้ IF Statement ใน Data Validation Formula ใน Excel (6 วิธี)
  • Use Data Validation in Excel with Color (4 Ways)
  • วิธีใช้ Data Validation List จากแผ่นงานอื่น (6 วิธี)
  • Use Named Range for Data Validation List with VBA in Excel
  • [Fixed] Data Validation Not Working for Copy Paste in Excel (with Solution)