การสร้างรายการดรอปดาวน์แบบขึ้นต่อกันหลายรายการเป็นสิ่งที่ท้าทายใน MS Excel มาโดยตลอด เราต้องการรายการดรอปดาวน์ประเภทนี้เมื่อมีการขึ้นต่อกันหรือความสัมพันธ์ระหว่างสองรายการดรอปดาวน์ โดยทั่วไปเราจะสร้างสิ่งนี้โดยใช้สูตรต่างๆ หรือเปลี่ยนตัวเลือกที่เหมาะสมใน Excel อย่างไรก็ตาม มีบางวิธีง่ายๆ ในการสร้างรายการดรอปดาวน์หลายรายการโดยใช้โค้ด Excel VBA ในบทความนี้ ผมจะแสดงวิธีต่างๆ ในการสร้างรายการดรอปดาวน์หลายรายการโดยใช้โค้ด VBA ใน Excel
อ่านเพิ่มเติม: วิธีการสร้างรายการแบบหล่นลงใน Excel (อิสระและขึ้นอยู่กับ)
รายการดรอปดาวน์ที่ขึ้นต่อกันใน Excel คืออะไร
ก่อนไปที่กระบวนการหลัก เรามาดูว่ารายการดรอปดาวน์ที่ขึ้นต่อกันคืออะไรใน Excel เมื่อมีการขึ้นต่อกันระหว่างรายการดรอปดาวน์ตั้งแต่สองรายการขึ้นไป เราจะเรียกรายการเหล่านั้นว่ารายการดรอปดาวน์ที่ขึ้นต่อกันใน Excel รูปภาพด้านล่างแสดงถึงแนวคิดที่ชัดเจนเกี่ยวกับรายการแบบเลื่อนลงที่ขึ้นต่อกัน
ดังที่เราเห็นได้ที่นี่สองรายการแบบหล่นลง หมวดหมู่ และอาหาร เป็นรายการแบบหล่นลงที่ขึ้นต่อกันทั้งหมดสองรายการ ขึ้นอยู่กับการเลือกหมวดหมู่ เรากำหนดรายการอาหารที่นี่ ดังนั้น วิธีการทำงานของรายการดรอปดาวน์แบบเรียงซ้อนหลายรายการ
อ่านเพิ่มเติม: วิธีสร้างรายการดรอปดาวน์ขึ้นอยู่กับไดนามิกใน Excel
3 วิธีในการสร้างรายการแบบหล่นลงหลายรายการขึ้นอยู่กับ Excel VBA
1. วิธีการเลือกหลายรายการในรายการแบบเลื่อนลงใน Excel VBA
สมมติว่าเรามีสองรายชื่อชื่อโครงการและสมาชิกโครงการ สำหรับแต่ละโครงการ เราจะกำหนดสมาชิกหนึ่งหรือหลายคนโดยใช้รายการแบบเลื่อนลง
ขั้นตอนที่ 1: ไปที่ นักพัฒนา แท็บแล้วเปิด Visual Basic (ทางลัด Alt + F11 )
ขั้นตอนที่ 2: ไปที่แผ่นงานที่เกี่ยวข้องจากเมนู VBAProject ที่เกี่ยวข้อง
ขั้นตอนที่ 3: ตอนนี้เขียนโค้ดต่อไปนี้ในคอนโซล VBA
รหัส:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Old_value As String
Dim New_value As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Not Intersect(Target, Range("C4:C11")) Is Nothing Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
New_value = Target.Value
Application.Undo
Old_value = Target.Value
If Old_value = "" Then
Target.Value = New_value
Else
If InStr(1, Old_value, New_value) = 0 Then
Target.Value = Old_value & ", " & New_value
Else:
Target.Value = Old_value
End If
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
ขั้นตอนที่ 4: ตอนนี้เลือกหลายชื่อในคอลัมน์สมาชิกโครงการ
ขั้นตอนที่ 5: ทุกเซลล์สามารถเลือกได้หลายรายการจากรายการแบบเลื่อนลง
อ่านเพิ่มเติม: วิธีการสร้างการเลือกหลายรายการจากรายการดรอปดาวน์ใน Excel
2. สร้างรายการดรอปดาวน์ขึ้นอยู่กับหลายรายการใน Excel VBA
มาดูชุดข้อมูลของอาหารประเภทต่างๆ เช่น ผัก ผลไม้ และผลิตภัณฑ์จากนมกัน ตอนนี้เราต้องการค้นหารายการอาหารตามหมวดหมู่ เช่นเดียวกับถ้าเราเลือกหมวดหมู่เป็น ผลไม้ จากนั้นในคอลัมน์อาหาร รายการที่มีควรเป็น ราสเบอร์รี่ แอปริคอต พีช มะม่วง ดังนั้นรายการอาหารควรมีให้ตามหมวดหมู่ มีการพึ่งพากันระหว่างหมวดหมู่และอาหาร
ขั้นตอนที่ 1: เปิดคอนโซล VBA โดยทำตามขั้นตอนเดียวกันจากวิธีที่ 1 (ขั้นตอนที่ 1 และ ขั้นตอนที่ 2 ) จากนั้นเขียนโค้ดต่อไปนี้
รหัส:
สำหรับการสร้างรายการแบบเลื่อนลงผัก:
Sub Vegetable_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Vegetable_List"
End Sub
สำหรับการสร้างรายการดรอปดาวน์ผลไม้:
Sub Fruit_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Fruits_list"
End Sub
สำหรับการสร้างรายการดรอปดาวน์ผลิตภัณฑ์นม:
Sub Dairy_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Dairy_Product_List"
End Sub
ในส่วนนี้ เรากำลังสร้างรายการอาหารแต่ละรายการและบันทึกไว้ในรายการแบบเลื่อนลง รายการนี้จะมีอยู่ใน C4:C6 ช่วง.
ขั้นตอนที่ 2: ตอนนี้เราต้องเขียนฟังก์ชันหลักสำหรับช่วง B4:B6
รหัส:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("B4:B6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="Vegetable_List,Fruits_list,Dairy_Product_List"
If Range("B4:B6").Value = "Vegetable_List" Then
Call Vegetable_List
ElseIf Range("B4:B6").Value = "Fruits_list" Then
Call Fruit_List
ElseIf Range("B4:B6").Value = "Dairy_Product_List" Then
Call Dairy_List
Else
End If
คำอธิบายโค้ด
- ที่นี่ เรากำลังสร้างรายการอื่นที่มีชื่อสำหรับหมวดหมู่ใน B4:B6 ซึ่งจะมีชื่อหมวดอาหาร
- จากนั้นกำลังตรวจสอบค่าของรายการและจัดหมวดหมู่ตามรายการ สำหรับสิ่งนี้ ถ้าเป็นอย่างอื่น ใช้คำสั่ง
- หากเราพบชื่อที่ตรงกัน เราก็เรียกฟังก์ชันการสร้างรายการโดยใช้เมธอด CallBack ชอบ
หากเป็น Range(“B4:B6”).Value =“Vegetable_List” จากนั้น
เรียกรายการผัก
- ที่นี่ถ้าค่าของเซลล์ตรงกับ Vegetable_List ข้อความ จากนั้นเราจะเรียก Vegetable_List ฟังก์ชันสร้างและแสดงรายการผัก
ดังนั้นโค้ดแบบเต็มของเราจะเป็นดังนี้:
ขั้นตอนที่ 3: ไปที่เวิร์กชีตแล้วเลือกหมวดหมู่ใดก็ได้จากรายการแบบเลื่อนลง
ขั้นตอนที่ 4: จากนั้นรายการที่เกี่ยวข้องจะอยู่ในคอลัมน์อาหาร
ขั้นตอนที่ 5: ผลลัพธ์สุดท้ายจะเป็นดังนี้:
3. การล้างรายการดรอปดาวน์ที่ขึ้นต่อกันหลายรายการใน Excel VBA
ในส่วนก่อนหน้านี้ เราได้เห็นแล้วว่าเราจะรับรายการที่ตรงกันที่เกี่ยวข้องใน Excel ได้อย่างไร แต่บางครั้งอาจมีการเลือกที่ไม่ตรงกันซึ่งจะไม่ถูกลบโดยอัตโนมัติ เราสามารถกำหนดสูตรป้องกันปัญหานี้ได้
อีกทางเลือกหนึ่งคือการใช้มาโคร เพื่อล้างเซลล์ที่ขึ้นต่อกัน หลังจากเลือกในเมนูดรอปดาวน์แรกแล้ว ที่จะป้องกันการเลือกที่ไม่ตรงกัน
ขั้นตอนที่ 1: เปิดคอนโซล VBA โดยทำตามขั้นตอนเดียวกันจากวิธีที่ 1 (ขั้นตอนที่ 1 และ ขั้นตอนที่ 2 ) จากนั้นเขียนโค้ดต่อไปนี้
รหัส:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 Then
If Target.Validation.Type = 3 Then
Application.EnableEvents = False
Target.Offset(0, 1).ClearContents
End If
End If
exitHandler:
Application.EnableEvents = True
Exit Sub
End Sub
ขั้นตอนที่ 2: ตอนนี้เลือกรายการใดก็ได้จาก อาหาร และพยายามเลือกหมวดหมู่อื่นจาก หมวดหมู่ และดูว่าเกิดอะไรขึ้น
ก่อน
วินาที
ผลลัพธ์สุดท้าย
อ่านเพิ่มเติม: วิธีลบรายการดรอปดาวน์ใน Excel
สิ่งที่ควรจำ
ข้อผิดพลาดทั่วไป | เมื่อแสดง |
---|---|
ไม่สามารถลบรายการ | ในการตรวจสอบข้อมูล ถ้า อนุญาต ไม่เท่ากับ List และ Source ไม่ได้ถูกเลือกอย่างถูกต้อง ดังนั้นรายการแบบหล่นลงจะไม่สามารถลบได้ หรือคุณใช้โค้ด VBA เพื่อลบรายการ |
อัปเดตปัญหาค่า | โดยทั่วไป ในรายการดรอปดาวน์ที่ขึ้นต่อกัน หากมีค่าที่ไม่ตรงกัน ค่านั้นจะไม่อัปเดตโดยอัตโนมัติ เราสามารถใช้สูตรหรือโค้ด VBA (วิธีที่ 3 ในบทความนี้) เพื่ออัปเดตค่าโดยอัตโนมัติ |
บทสรุป
นี่เป็นวิธีการบางอย่างในการสร้างหรือจัดการรายการดรอปดาวน์ที่ขึ้นต่อกันหลายรายการ Excel VBA ฉันได้แสดงวิธีการทั้งหมดพร้อมตัวอย่างที่เกี่ยวข้องแล้ว แต่สามารถทำซ้ำได้อีกมากมาย ฉันได้กล่าวถึงพื้นฐานของฟังก์ชันที่ใช้แล้ว หากคุณมีวิธีอื่นในการบรรลุเป้าหมายนี้ โปรดแชร์ให้เราทราบ
อ่านเพิ่มเติม
- วิธีสร้างรายการแบบหล่นลงในหลายคอลัมน์ใน Excel (3 วิธี)
- Excel Drop Down List ขึ้นอยู่กับการเลือก
- วิธีใช้คำสั่ง IF เพื่อสร้างรายการดรอปดาวน์ใน Excel
- สร้างรายการแบบหล่นลงจากชีตอื่นใน Excel (2 วิธี)
- วิธีแก้ไขรายการดรอปดาวน์ใน Excel (แนวทางพื้นฐาน 4 วิธี)
- VLOOKUP พร้อมรายการดรอปดาวน์ใน Excel