ไปยังเนื้อหาหลัก

วิธีสร้างกล่องรายการเรียงซ้อนแบบไดนามิกใน 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. ปิดโหมดออกแบบโดยคลิก ผู้พัฒนา > โหมดการออกแบบ.

จากนี้ไปเมื่อเลือกเครื่องดื่มชนิดใดก็ได้เช่นกาแฟในช่องรายการหลักรายการกาแฟทั้งหมดจะแสดงในรายการที่สอง เลือกชาหรือไวน์จะแสดงเฉพาะรายการชาหรือไวน์ในช่องรายการที่สอง ดูภาพหน้าจอ:


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

สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน

🤖 Kutools AI ผู้ช่วย: ปฏิวัติการวิเคราะห์ข้อมูลโดยยึดตาม: การดำเนินการที่ชาญฉลาด   |  สร้างรหัส  |  สร้างสูตรที่กำหนดเอง  |  วิเคราะห์ข้อมูลและสร้างแผนภูมิ  |  เรียกใช้ฟังก์ชัน Kutools...
คุณสมบัติยอดนิยม: ค้นหา เน้น หรือระบุรายการที่ซ้ำกัน   |  ลบแถวว่าง   |  รวมคอลัมน์หรือเซลล์โดยไม่สูญเสียข้อมูล   |   รอบโดยไม่มีสูตร ...
การค้นหาขั้นสูง: VLookup หลายเกณฑ์    VLookup หลายค่า  |   VLookup ข้ามหลายแผ่น   |   การค้นหาที่ไม่ชัดเจน ....
รายการแบบเลื่อนลงขั้นสูง: สร้างรายการแบบหล่นลงอย่างรวดเร็ว   |  รายการแบบหล่นลงขึ้นอยู่กับ   |  เลือกหลายรายการแบบหล่นลง ....
ผู้จัดการคอลัมน์: เพิ่มจำนวนคอลัมน์เฉพาะ  |  ย้ายคอลัมน์  |  สลับสถานะการมองเห็นของคอลัมน์ที่ซ่อนอยู่  |  เปรียบเทียบช่วงและคอลัมน์ ...
คุณสมบัติเด่น: กริดโฟกัส   |  มุมมองการออกแบบ   |   บาร์สูตรใหญ่    สมุดงานและตัวจัดการชีต   |  ห้องสมุดทรัพยากร (ข้อความอัตโนมัติ)   |  เลือกวันที่   |  รวมแผ่นงาน   |  เข้ารหัส/ถอดรหัสเซลล์    ส่งอีเมลตามรายการ   |  ซุปเปอร์ฟิลเตอร์   |   ตัวกรองพิเศษ (กรองตัวหนา/ตัวเอียง/ขีดทับ...) ...
ชุดเครื่องมือ 15 อันดับแรก12 ข้อความ เครื่องมือ (เพิ่มข้อความ, ลบอักขระ, ... )   |   50 + แผนภูมิ ประเภท (แผนภูมิ Gantt, ... )   |   40+ ใช้งานได้จริง สูตร (คำนวณอายุตามวันเกิด, ... )   |   19 การแทรก เครื่องมือ (ใส่ QR Code, แทรกรูปภาพจากเส้นทาง, ... )   |   12 การแปลง เครื่องมือ (ตัวเลขเป็นคำ, การแปลงสกุลเงิน, ... )   |   7 ผสานและแยก เครื่องมือ (แถวรวมขั้นสูง, แยกเซลล์, ... )   |   ... และอื่น ๆ

เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา  คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...

รายละเอียด


แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi

What does "Me" refer to in the code and how will the code change if I have a MultiSelect list box?

Regards
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations