วิธีสร้างกล่องรายการเรียงซ้อนแบบไดนามิกใน Excel
คุณอาจทราบวิธีสร้างรายการแบบเลื่อนลงการตรวจสอบความถูกต้องแบบเรียงซ้อนใน Excel อย่างไรก็ตามวิธีสร้างกล่องรายการเรียงซ้อนแบบไดนามิกใน Excel บทความนี้แนะนำวิธีการ VBA เพื่อลดปัญหา
สร้างกล่องรายการเรียงซ้อนแบบไดนามิกด้วยรหัส VBA
สร้างกล่องรายการเรียงซ้อนแบบไดนามิกด้วยรหัส VBA
ตามที่แสดงภาพหน้าจอด้านล่างคุณต้องสร้างกล่องรายการหลักที่มีค่าเฉพาะของคอลัมน์เครื่องดื่มและแสดงค่าที่เกี่ยวข้องทั้งหมดในกล่องรายการที่สองตามการเลือกในกล่องรายการหลัก รหัส VBA ต่อไปนี้ช่วยให้คุณบรรลุได้ กรุณาดำเนินการดังนี้
1. ประการแรกคุณต้องดึงค่าที่ไม่ซ้ำกันทั้งหมดออกจากคอลัมน์เครื่องดื่ม เลือกเซลล์ว่างป้อนสูตรอาร์เรย์ =IFERROR(INDEX($A$2:$A$11, MATCH(0,COUNTIF($J$1:J1, $A$2:$A$11), 0)),"") เข้าไปใน สูตรบาร์แล้วกดปุ่ม Ctrl + เปลี่ยน + เข้าสู่ สำคัญ. จากนั้นลากไฟล์ เติมที่จับ เพื่อรับค่าที่ไม่ซ้ำกันทั้งหมด ดูภาพหน้าจอ:
หมายเหตุ: ในสูตร $A$2:$A$11 คือช่วงที่คุณจะดึงค่าที่ไม่ซ้ำกันออกมา J1 คือเซลล์ด้านบนที่มีสูตรของคุณอยู่
ปลาย: หากสูตรนั้นยากที่จะจดจำและจัดการกับ เลือกเซลล์ซ้ำและไม่ซ้ำกัน ประโยชน์ของ Kutools สำหรับ Excel จะเป็นทางเลือกที่ดีสำหรับคุณในการดึงค่าที่ไม่ซ้ำกันทั้งหมดออกจากคอลัมน์อย่างรวดเร็ว
โปรดเลือกคอลัมน์ที่มีค่าเฉพาะที่คุณจะดึงออกมา จากนั้นเปิดใช้งานยูทิลิตี้โดยคลิก Kutools > เลือก > เลือกเซลล์ซ้ำและไม่ซ้ำกัน. ใน เลือกเซลล์ซ้ำและไม่ซ้ำกัน กล่องโต้ตอบเลือกไฟล์ ไม่ซ้ำกันทั้งหมด (รวมถึงรายการที่ซ้ำกันครั้งแรก) และคลิกที่ OK ปุ่ม. จากนั้นค่าที่ไม่ซ้ำกันทั้งหมดจะถูกเลือกในคอลัมน์ โปรดคัดลอกและวางลงในที่ใหม่ ดูภาพหน้าจอ:
Kutools สำหรับ Excel: ด้วย Add-in ของ Excel ที่มีประโยชน์มากกว่า 200 รายการให้ทดลองใช้ฟรีโดยไม่มีข้อ จำกัด ใน 60 วัน ดาวน์โหลดและทดลองใช้ฟรีทันที!
2. แทรกสองกล่องรายการแยกกันโดยคลิก ผู้พัฒนา > สิ่งที่ใส่เข้าไป > กล่องรายการ (ActiveX Control). ดูภาพหน้าจอ:
3. คลิกขวาที่กล่องรายการหลักแล้วเลือก อสังหาริมทรัพย์ จากเมนูบริบท ใน อสังหาริมทรัพย์ กล่องโต้ตอบเปลี่ยนไฟล์ (ชื่อ) ฟิลด์ไปที่ ดื่ม หรือชื่ออื่น ๆ ตามที่คุณต้องการป้อนช่วงเซลล์ที่มีค่าเฉพาะที่แยกแล้วลงในไฟล์ รายการFillRange และปิดกล่องโต้ตอบ
4. ทำซ้ำขั้นตอนที่ 3 เพื่อเปลี่ยนกล่องรายการที่สอง (ชื่อ) ไปยังรายการใน อสังหาริมทรัพย์ กล่องโต้ตอบ
5. คลิกขวาที่แท็บแผ่นงานแล้วเลือก ดูรหัส จากเมนูคลิกขวา จากนั้นคัดลอกโค้ด VBA ด้านล่างลงในหน้าต่างรหัส ดูภาพหน้าจอ:
รหัส VBA: สร้างกล่องรายการเรียงซ้อนแบบไดนามิกใน Excel
Dim xPreStr As String
Private Sub Drink_Click()
'Update by Extendoffice 2018/06/04
Dim I, xRows As Long
Dim xRg As Range
Dim xRegStr As String
Application.ScreenUpdating = False
xRegStr = Me.Drink.Text
Set xRg = Range("A2:A11")
xRows = xRg.Rows.Count
If xRegStr <> xPreStr Then
Me.Item.Clear
'Me.OtherListBoxName.Clear
Set xRg = xRg(1)
For I = 1 To xRows
If xRg.Offset(I - 1).Value = xRegStr Then
Me.Item.AddItem xRg.Offset(I - 1, 1).Value
'Me.OtherListBoxName.AddItem xRg.Offset(I - 1, 2).Value
End If
Next
xPreStr = xRegStr
End If
Application.ScreenUpdating = True
End Sub
หมายเหตุ : : ในรหัสเครื่องดื่มและรายการคือชื่อของกล่องรายการสองกล่องให้เปลี่ยนเป็นชื่อของคุณเอง
6 กด อื่น ๆ + Q ปุ่มเพื่อปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง
7. ปิดโหมดออกแบบโดยคลิก ผู้พัฒนา > โหมดการออกแบบ.
จากนี้ไปเมื่อเลือกเครื่องดื่มชนิดใดก็ได้เช่นกาแฟในช่องรายการหลักรายการกาแฟทั้งหมดจะแสดงในรายการที่สอง เลือกชาหรือไวน์จะแสดงเฉพาะรายการชาหรือไวน์ในช่องรายการที่สอง ดูภาพหน้าจอ:
บทความที่เกี่ยวข้อง:
- วิธีการล้างเซลล์รายการแบบหล่นลงที่ขึ้นอยู่กับการเลือกเปลี่ยนแปลงใน Excel
- วิธีสร้างรายการแบบหล่นลงแบบเรียงซ้อนใน Excel
- วิธีเติมข้อมูลเซลล์อื่นโดยอัตโนมัติเมื่อเลือกค่าในรายการแบบเลื่อนลงของ Excel
- วิธีสร้างปฏิทินรายการแบบหล่นลงใน Excel
- Hเป็นหนี้ในการบันทึกหรือรักษาการเลือกของกล่องรายการ ActiveX ใน Excel?
สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน
เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...
แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก
- เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
- เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
- เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!