รายการแบบเลื่อนลงพร้อมการเลือกหลายรายการ

รายการดรอปดาวน์แบบคลาสสิกในแผ่นงาน Excel นั้นยอดเยี่ยม แต่ให้คุณเลือกได้เพียงตัวเลือกเดียวจากชุดที่นำเสนอ บางครั้งนี่คือสิ่งที่คุณต้องการ แต่มีบางสถานการณ์ที่ผู้ใช้จำเป็นต้องเลือก บาง องค์ประกอบจากรายการ

ลองดูการใช้งานทั่วไปหลายรายการของรายการแบบเลือกได้หลายรายการ

ตัวเลือกที่ 1 แนวนอน

ผู้ใช้เลือกรายการจากรายการดรอปดาวน์ทีละรายการ และปรากฏทางด้านขวาของเซลล์ที่มีการเปลี่ยนแปลง โดยจะแสดงรายการในแนวนอนโดยอัตโนมัติ:

รายการดรอปดาวน์ในเซลล์ C2:C5 ในตัวอย่างนี้ถูกสร้างขึ้นด้วยวิธีมาตรฐาน เช่น

  1. เลือกเซลล์ C2:C5
  2. แท็บหรือเมนู ข้อมูล เลือกทีม การตรวจสอบข้อมูล
  3. ในหน้าต่างที่เปิดขึ้น ให้เลือกตัวเลือก รายการ และระบุเป็น range แหล่ง เซลล์ที่มีข้อมูลต้นทางสำหรับรายการ A1:A8

จากนั้นคุณต้องเพิ่มมาโครลงในโมดูลชีตซึ่งจะทำงานหลักทั้งหมด เช่น เพิ่มค่าที่เลือกไว้ทางด้านขวาของเซลล์สีเขียว ในการดำเนินการนี้ ให้คลิกขวาที่แท็บแผ่นงานที่มีรายการดรอปดาวน์แล้วเลือกคำสั่ง รหัสที่มา. วางโค้ดต่อไปนี้ลงในหน้าต่างตัวแก้ไข Visual Basic ที่เปิดขึ้น:

Private Sub Worksheet_Change (ByVal Target As Range) เมื่อเกิดข้อผิดพลาด ดำเนินการต่อ ถัดไป ถ้าไม่ตัดกัน (Target, Range("C2:C5")) ไม่มีอะไรและ Target.Cells.Count = 1 จากนั้น Application.EnableEvents = False หาก Len (Target.Offset (0, 1)) = 0 จากนั้น Target.Offset(0, 1) = Target Else Target.End(xlToRight).Offset(0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

หากจำเป็น ให้แทนที่ช่วงที่ละเอียดอ่อนของรายการดรอปดาวน์ C2:C5 ในบรรทัดที่สองของโค้ดนี้ด้วยช่วงของคุณเอง

ตัวเลือกที่ 2 แนวตั้ง

เช่นเดียวกับในเวอร์ชันก่อนหน้า แต่ค่าที่เลือกใหม่จะไม่ถูกเพิ่มไปทางขวา แต่อยู่ด้านล่าง:

มันทำในลักษณะเดียวกันทุกประการ แต่รหัสแมโครตัวจัดการเปลี่ยนแปลงเล็กน้อย:

Private Sub Worksheet_Change (ByVal Target As Range) เมื่อเกิดข้อผิดพลาด ดำเนินการต่อ ถัดไป ถ้าไม่ตัดกัน (Target, Range("C2:F2")) ไม่มีอะไรและ Target.Cells.Count = 1 จากนั้น Application.EnableEvents = False หาก Len (Target.Offset (1, 0)) = 0 จากนั้น Target.Offset(1, 0) = Target Else Target.End(xlDown).Offset(1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

อีกครั้ง หากจำเป็น ให้แทนที่ช่วงที่ละเอียดอ่อนของรายการดรอปดาวน์ C2:F2 ด้วยช่วงของคุณเองในบรรทัดที่สองของโค้ดนี้

ตัวเลือกที่ 3 ด้วยการสะสมในเซลล์เดียวกัน

ในตัวเลือกนี้ การสะสมจะเกิดขึ้นในเซลล์เดียวกันกับที่มีรายการดรอปดาวน์อยู่ องค์ประกอบที่เลือกจะถูกคั่นด้วยอักขระที่กำหนด (เช่น เครื่องหมายจุลภาค):

รายการดรอปดาวน์ในเซลล์สีเขียวถูกสร้างขึ้นด้วยวิธีมาตรฐานอย่างสมบูรณ์ เช่นเดียวกับในวิธีก่อนหน้านี้ งานทั้งหมดเสร็จสิ้นอีกครั้งโดยแมโครในโมดูลแผ่นงาน:

แผ่นงานย่อยส่วนตัว _Change (ByVal Target As Range) เมื่อเกิดข้อผิดพลาด ให้ดำเนินการต่อหากไม่ตัดกัน (Target, Range ("C2:C5")) ไม่มีอะไร และ Target.Cells.Count = 1 จากนั้น Application.EnableEvents = False newVal = Target Application.Undo oldval = Target ถ้า Len(oldval) <> 0 และ oldval <> newVal จากนั้น Target = Target & "," & newVal อื่นๆ Target = newVal End If If Len(newVal) = 0 จากนั้น Target.ClearContents Application.EnableEvents = True End If จบซับ  

หากต้องการ คุณสามารถแทนที่อักขระตัวคั่น (จุลภาค) ในโค้ดบรรทัดที่ 9 ด้วยอักขระของคุณเองได้ (เช่น เว้นวรรคหรือเครื่องหมายอัฒภาค)

  • วิธีสร้างรายการดรอปดาวน์อย่างง่ายในเซลล์แผ่นงาน Excel
  • รายการแบบเลื่อนลงพร้อมเนื้อหา
  • รายการแบบหล่นลงที่เพิ่มตัวเลือกที่ขาดหายไป
  • มาโครคืออะไร ใช้งานอย่างไร ตำแหน่งที่จะแทรกโค้ดแมโครใน Visual Basic

เขียนความเห็น