Note: The other languages of the website are Google-translated. Back to English

วิธีสร้างรายการแบบหล่นลงด้วยการเลือกหรือค่าต่างๆใน Excel

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


สร้างรายการแบบหล่นลงด้วยการเลือกหลายรายการด้วยรหัส VBA

ส่วนนี้มีรหัส VBA สองรหัสเพื่อช่วยคุณทำการเลือกหลายรายการในรายการดรอปดาวน์ในเวิร์กชีต รหัส VBA สองรหัสสามารถบรรลุได้:

รหัส VBA 1: อนุญาตให้เลือกหลายรายการในรายการแบบหล่นลงโดยไม่ซ้ำกัน
รหัส VBA 2: อนุญาตการเลือกหลายรายการในรายการแบบหล่นลงโดยไม่ซ้ำกัน (ลบรายการที่มีอยู่โดยเลือกอีกครั้ง)

คุณสามารถใช้รหัส VBA ต่อไปนี้เพื่อทำการเลือกหลายรายการในรายการดรอปดาวน์ในเวิร์กชีตใน Excel โปรดดำเนินการดังนี้

1. เปิดเวิร์กชีตที่มีรายการดรอปดาวน์การตรวจสอบความถูกต้องของข้อมูลที่คุณต้องการเลือกหลายรายการ คลิกขวาที่แท็บแผ่นงานแล้วเลือก ดูรหัส จากเมนูบริบท

2 ใน Microsoft Visual Basic สำหรับแอปพลิเคชัน คัดลอกโค้ด VBA ด้านล่างลงในหน้าต่างรหัส ดูภาพหน้าจอ:

รหัส VBA 1: อนุญาตให้เลือกหลายรายการในรายการแบบหล่นลงโดยไม่ซ้ำกัน

Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated by Extendoffice 2019/11/13
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    If Target.Count > 1 Then Exit Sub
    On Error Resume Next
    Set xRng = Cells.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then Exit Sub
    Application.EnableEvents = False
    If Not Application.Intersect(Target, xRng) Is Nothing Then
        xValue2 = Target.Value
        Application.Undo
        xValue1 = Target.Value
        Target.Value = xValue2
        If xValue1 <> "" Then
            If xValue2 <> "" Then
                If xValue1 = xValue2 Or _
                   InStr(1, xValue1, ", " & xValue2) Or _
                   InStr(1, xValue1, xValue2 & ",") Then
                    Target.Value = xValue1
                Else
                    Target.Value = xValue1 & ", " & xValue2
                End If
            End If
        End If
    End If
    Application.EnableEvents = True
End Sub

3 กด อื่น ๆ + Q ปุ่มเพื่อปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

ตอนนี้ คุณสามารถเลือกหลายรายการจากรายการดรอปดาวน์ในเวิร์กชีตปัจจุบันได้

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

รหัส VBA 2: อนุญาตการเลือกหลายรายการในรายการแบบหล่นลงโดยไม่ซ้ำกัน (ลบรายการที่มีอยู่โดยเลือกอีกครั้ง)

Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated by Extendoffice 2023/01/11
    'Updated by Ken Gardner 2022/07/11
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    Dim semiColonCnt As Integer
    Dim xType As Integer
    If Target.Count > 1 Then Exit Sub
    On Error Resume Next
    
    xType = 0
    xType = Target.Validation.Type
    If xType = 3 Then
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        xValue2 = Target.Value
        Application.Undo
        xValue1 = Target.Value
        Target.Value = xValue2
        If xValue1 <> "" Then
            If xValue2 <> "" Then
                If xValue1 = xValue2 Or xValue1 = xValue2 & ";" Or xValue1 = xValue2 & "; " Then ' leave the value if only one in list
                    xValue1 = Replace(xValue1, "; ", "")
                    xValue1 = Replace(xValue1, ";", "")
                    Target.Value = xValue1
                ElseIf InStr(1, xValue1, "; " & xValue2) Then
                    xValue1 = Replace(xValue1, xValue2, "") ' removes existing value from the list on repeat selection
                    Target.Value = xValue1
                ElseIf InStr(1, xValue1, xValue2 & ";") Then
                    xValue1 = Replace(xValue1, xValue2, "")
                    Target.Value = xValue1
                Else
                    Target.Value = xValue1 & "; " & xValue2
                End If
                Target.Value = Replace(Target.Value, ";;", ";")
                Target.Value = Replace(Target.Value, "; ;", ";")
                If Target.Value <> "" Then
                    If Right(Target.Value, 2) = "; " Then
                        Target.Value = Left(Target.Value, Len(Target.Value) - 2)
                    End If
                End If
                If InStr(1, Target.Value, "; ") = 1 Then ' check for ; as first character and remove it
                    Target.Value = Replace(Target.Value, "; ", "", 1, 1)
                End If
                If InStr(1, Target.Value, ";") = 1 Then
                    Target.Value = Replace(Target.Value, ";", "", 1, 1)
                End If
                semiColonCnt = 0
                For i = 1 To Len(Target.Value)
                    If InStr(i, Target.Value, ";") Then
                        semiColonCnt = semiColonCnt + 1
                    End If
                Next i
                If semiColonCnt = 1 Then ' remove ; if last character
                    Target.Value = Replace(Target.Value, "; ", "")
                    Target.Value = Replace(Target.Value, ";", "")
                End If
            End If
        End If
        Application.EnableEvents = True
        Application.ScreenUpdating = True
    End If
End Sub

หมายเหตุ / รายละเอียดเพิ่มเติม:

1). ไม่อนุญาตให้มีค่าซ้ำกันในรายการดรอปดาวน์
2). รหัส VBA 2 ด้านบนจัดทำโดยผู้ใช้ที่กระตือรือร้นของเรา Ken Gardner เมื่อวันที่ 2022/07/11
3). โปรดบันทึกสมุดงานเป็น an สมุดงานที่เปิดใช้งานแมโคร Excel เพื่อให้โค้ดใช้งานได้ในอนาคต
4). หลังจากเพิ่มโค้ด VBA 2 แล้ว คุณสามารถลบรายการที่มีอยู่ได้โดยเลือกอีกครั้งในรายการดรอปดาวน์ ดู gif ด้านล่าง:


สร้างรายการแบบหล่นลงได้อย่างง่ายดายด้วยตัวเลือกมากมายด้วยเครื่องมือที่น่าทึ่ง

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

ปลาย: ก่อนใช้เครื่องมือนี้ โปรดติดตั้ง Kutools for Excel ประการแรก ไปดาวน์โหลดฟรีเลย.

  1. เลือก Kutools > รายการแบบหล่นลง > เลือกรายการแบบหล่นลงได้หลายรายการ.
  2. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร เลือกรายการแบบหล่นลงได้หลายรายการ กล่องโต้ตอบ ทำการตั้งค่าต่อไปนี้
    2.1) ระบุตำแหน่งที่คุณต้องการใช้คุณสมบัตินี้ใน กำหนดขอบเขต มาตรา;
    2.2) ระบุตัวคั่นสำหรับรายการที่เลือกในเซลล์
    2.3) กำหนดทิศทางของข้อความ;
    2.4) คลิก OK.
ผล

หมายเหตุ: หากต้องการใช้คุณสมบัตินี้ โปรด ดาวน์โหลดและติดตั้ง Kutools for Excel ก่อน

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

เติมข้อความอัตโนมัติเมื่อพิมพ์ในรายการแบบเลื่อนลงของ Excel
หากคุณมีรายการแบบเลื่อนลงการตรวจสอบข้อมูลที่มีค่ามากคุณจะต้องเลื่อนลงในรายการเพื่อค้นหาคำที่เหมาะสมหรือพิมพ์ทั้งคำลงในกล่องรายการโดยตรง หากมีวิธีการอนุญาตให้กรอกอัตโนมัติเมื่อพิมพ์ตัวอักษรตัวแรกในรายการแบบเลื่อนลงทุกอย่างจะง่ายขึ้น บทแนะนำนี้มีวิธีการแก้ปัญหา

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

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

เติมข้อมูลเซลล์อื่นโดยอัตโนมัติเมื่อเลือกค่าในรายการแบบเลื่อนลงของ Excel
สมมติว่าคุณได้สร้างรายการแบบหล่นลงตามค่าในช่วงเซลล์ B8: B14 เมื่อคุณเลือกค่าใด ๆ ในรายการแบบหล่นลงคุณต้องการให้ค่าที่เกี่ยวข้องในช่วงเซลล์ C8: C14 ถูกเติมโดยอัตโนมัติในเซลล์ที่เลือก สำหรับการแก้ปัญหาวิธีการในบทช่วยสอนนี้จะช่วยคุณได้

บทแนะนำเพิ่มเติมสำหรับรายการแบบเลื่อนลง ...


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools for Excel แก้ปัญหาส่วนใหญ่ของคุณ และเพิ่มประสิทธิภาพการทำงานของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office/Excel 2007-2021 และ 365 รองรับทุกภาษา ง่ายต่อการปรับใช้ในองค์กรหรือองค์กรของคุณ คุณสมบัติเต็มรูปแบบ ทดลองใช้ฟรี 30 วัน รับประกันคืนเงินภายใน 60 วัน
kte แท็บ 201905

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

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (67)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ขอบคุณสำหรับวิธีแก้ปัญหาและรหัส แต่ขั้นตอนต่อไปคือวิธีการตรวจสอบให้แน่ใจว่าผู้ใช้ไม่ได้เลือกค่า "ซ้ำ" จากรายการแบบเลื่อนลง เช่น หากมี 4 รายการในรายการ ได้แก่ ส้ม แอปเปิ้ล กล้วย พีช และหากผู้ใช้เลือก "สีส้ม" แล้ว excel ไม่ควรให้ผู้ใช้เลือก "สีส้ม" หรือตัวเลือกนั้นควรถูกลบออกจากส่วนที่เหลือ รายการ. คุณช่วยกรุณาเผยแพร่รหัสเพื่อให้คุณลักษณะนี้สำเร็จได้หรือไม่ ขอบคุณ. เยซดิ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี Yezdi ขอบคุณสำหรับความคิดเห็นของคุณ รหัสได้รับการอัปเดตและไม่อนุญาตให้มีค่าซ้ำกันในรายการแบบเลื่อนลงในขณะนี้ ขอบคุณ. แดด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เป็นการดีที่อนุญาตให้เลือกได้หลายแบบ แต่เหมือนที่ @Yezdi แสดงความคิดเห็น ฉันพบว่ามันจะเพิ่มรายการที่ซ้ำกันหนึ่งหรือหลายรายการแม้ว่าฉันจะไม่เลือกก็ตาม ดังนั้น ในตอนนี้ นี่คือโซลูชัน 80%... หนึ่งปรับแต่งให้สมบูรณ์แบบ ฉันไม่ใช่ผู้เขียนโค้ด VB หรือฉันจะเสนอวิธีแก้ปัญหา
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
คุณสามารถเปลี่ยนรหัสในบรรทัดต่อไปนี้เพื่อป้องกันการซ้ำซ้อน: ถ้า xValue2 "" จากนั้น Target.Value = xValue1 & ", " & xValue2 End If To: ถ้า xValue2 "" ถ้า CheckIfAlreadyAdded(xValue1, xValue2) = False แล้ว Target .Value = xValue1 & ", " & xValue2 Else Target.Value = xValue1 End If End If แล้วเพิ่มฟังก์ชันต่อไปนี้: Private Function CheckIfAlreadyAdded(ByVal sText As String, sNewValue As String) As Boolean CheckIfAlreadyAdded = False Dim WrdArray String WrdArray() = Split(sText, ",") For i = LBound(WrdArray) To UBound(WrdArray) If Trim(WrdArray(i)) = Trim(sNewValue) จากนั้น CheckIfAlreadyAdded = True Next i End Function -- อาจมี วิธีที่ดีกว่าในการเข้ารหัส แต่ใช้งานได้ในตอนนี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เพิ่งรู้ว่าฉันไม่ได้ออกจากลูปในฟังก์ชันใหม่หากมีการตั้งค่าเงื่อนไขไว้ เราจึงไม่ต้องตรวจสอบรายการอื่นๆ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี. ขอบคุณสำหรับรหัสและการเพิ่มเพื่อจำกัดการซ้ำซ้อน คำขออีกครั้งหนึ่ง - จะต้องเพิ่มเติม/เปลี่ยนแปลงอะไรเพื่อให้สามารถเลือกได้หลายรายการในคอลัมน์เฉพาะหนึ่งหรือสองคอลัมน์เท่านั้น รหัสนี้จะเพิ่มบรรทัดข้อความลงในเซลล์ที่ 'ธรรมดา' อีกครั้ง ถ้าฉันแก้ไขการสะกดผิด หรือทำการเปลี่ยนแปลงหรือเพิ่มเติมข้อความในเซลล์ แทนที่จะทำงาน 'ปกติ' และยอมรับการเปลี่ยนแปลง (โดยไม่ต้องเพิ่มข้อความใหม่ทั้งหมดอีกครั้ง) ตัวอย่างเช่น คอลัมน์ A เป็นคอลัมน์ 'ธรรมดา' ฉันเขียนประโยคว่า "คุณต้องการอะไรมากที่สุดสามรายการ" คอลัมน์ B คือคอลัมน์ 'รายการ' ที่ฉันต้องการให้เลือกได้เพียงค่าเดียวเท่านั้น (ในกรณีนี้ ให้เรียกว่าชื่อเด็ก) คอลัมน์ C เป็นคอลัมน์ 'รายการ' อีกคอลัมน์หนึ่งที่ผู้ใช้ต้องสามารถเลือกได้หลายรายการ (ซึ่งรหัสนี้ช่วยให้ฉันเลือกได้อย่างสมบูรณ์) เมื่อฉันอธิบายไป ฉันพบว่าฉันพิมพ์ผิดในคอลัมน์ A และต้องการแก้ไข ตามที่ระบุรหัสนี้ ถ้าฉันเข้าไป (ดับเบิลคลิก, F2) และแก้ไขคำว่า "รายการ" ฉันจะได้ผลลัพธ์นี้ในเซลล์ของฉัน: "คุณต้องการอะไรมากที่สุดสามรายการ สามรายการคืออะไร รายการที่คุณต้องการมากที่สุด?" ขอขอบคุณล่วงหน้าสำหรับความช่วยเหลือ (จากผู้ใช้ที่ชอบ VBA จริงๆ แต่ยังอยู่ในช่วงเริ่มต้นของการเรียนรู้!)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันสามารถให้รหัสทำงานได้ แต่เมื่อฉันบันทึกเอกสาร (โดยที่เปิดใช้งานมาโคร) ปิดและส่งคืน รหัสก็ใช้งานไม่ได้อีกต่อไป (แม้ว่าจะยังอยู่ในนั้น) ฉันไม่สามารถเข้าใจได้ว่าฉันทำอะไรผิด ความคิดใด?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี Cynthia หากผู้เขียนต้นฉบับไม่ตอบกลับ ฉันจะได้คำตอบให้คุณ แต่ฉันจะอยู่หน้าคอมพิวเตอร์ในวันที่ 29 ธันวาคมนี้เท่านั้น ฉันไม่ใช่โปรแกรมเมอร์ VBA ด้วย ในระหว่างนี้คุณสามารถทำการค้นหาโดย Google วิธีระบุหมายเลขคอลัมน์และปล่อยให้โค้ดทำงานก็ต่อเมื่อข้อมูลถูกแก้ไขในคอลัมน์นั้นๆ ฉันทำเสร็จแล้ว แต่รหัสอยู่บนพีซีที่ทำงานของฉัน และไม่สามารถเรียกคืนได้ในขณะนี้ อาจลองใส่ debug.print บน target.column หรืออย่างอื่นเพื่อดูว่ามันให้หมายเลขคอลัมน์ที่แก้ไขหรือไม่ . ขออภัย Jennifer ไม่แน่ใจเกี่ยวกับปัญหาที่คุณมี :(
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
@Cynthia หากยังจำเป็น คุณควรทำสิ่งนี้เพื่อให้แน่ใจว่าโค้ดทำงานในคอลัมน์เฉพาะ ในกรณีของฉัน คอลัมน์ 34 และ 35: ถ้า (Target.Column 34 และ Target.Column 35) จากนั้นออกจาก Sub 'ใส่รหัสนี้ที่จุดเริ่มต้นหลังจากคำสั่งสลัวของคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
[quote]@Cynthia หากยังจำเป็น คุณควรทำสิ่งนี้เพื่อให้แน่ใจว่าโค้ดทำงานในคอลัมน์เฉพาะ ในกรณีของฉัน คอลัมน์ 34 และ 35: ถ้า (Target.Column 34 And Target.Column 35) จากนั้น Exit Sub 'ใส่รหัสนี้ที่จุดเริ่มต้นหลังจากคำสั่ง dim ของคุณโดย Mervyn[/quote] สวัสดี @Mervyn ลืมกระทู้ไปเลย แต่ขอบคุณมากสำหรับคำตอบ ฉันได้ลองใช้ If (Target.Column 34 And Target.Column 35) แล้ว Exit Sub (เวอร์ชันของฉันอ่านว่า If (Target.Column4 And Target.Column5) จากนั้นออกจาก Sub ตามที่คุณระบุ แต่ได้รับ "รันไทม์ ข้อผิดพลาด '438': วัตถุไม่รองรับคุณสมบัติหรือวิธีการนี้ "" ข้อผิดพลาดในบรรทัดใหม่นี้ นี่คือสองสามบรรทัดแรกของรหัสของฉัน: Private Sub Worksheet_Change(ByVal Target As Range) Dim xRng As Range Dim xValue1 As String Dim xValue2 As String If (Target.Column4 And Target.Column5) จากนั้นออกจาก Sub ถ้า Target.Count > 1 จากนั้นออกจาก Sub เมื่อเกิดข้อผิดพลาด ดำเนินการต่อ ถัดไป แผ่นงานของฉันมีเพียง 6 คอลัมน์: คำถาม | คำตอบ | หมวดหมู่ | หมวดหมู่ย่อย | แท็ก | ลิงค์รูปภาพ ฉันต้องการค่าดรอปดาวน์หลายรายการในหมวดย่อยและแท็ก (คอลัมน์ 4 & 5) ฉันจะค้นหาข้อมูลตามที่คุณแนะนำในวันที่ 12/23 และจะดูที่ลิงก์การกุศลที่ให้ไว้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ถ้า Target.Column <> 34 แล้วออกจาก Sub

'ใส่รหัสนี้ที่จุดเริ่มต้นหลังจากคำสั่งสลัวของคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันกำลังใช้สูตรนี้อยู่ และทุกคอลัมน์ที่มีการตรวจสอบความถูกต้องของข้อมูลมีตัวเลือกการเลือกหลายรายการในขณะนี้ แต่ฉันต้องการจำกัดการเลือกหลายรายการให้เหลือเพียงคอลัมน์เดียว ใครสามารถแก้ไขสูตรนี้ให้ฉันเพื่อให้การเลือกหลายรายการสามารถใช้ได้กับ Column4 เท่านั้น ขอบคุณ :) Private Sub Worksheet_Change (ByVal Target As Range) 'Updated: 2016/4/12 Dim xRng As Range Dim xValue1 As String Dim xValue2 As String ถ้า Target.Count > 1 จากนั้นออกจาก Sub เมื่อเกิดข้อผิดพลาด Resume Next Set xRng = Cells SpecialCells(xlCellTypeAllValidation) ถ้า xRng Is Nothing จากนั้นให้ออกจาก Sub Application.EnableEvents = False ถ้าไม่ใช่ Application.Intersect(Target, xRng) Is Nothing จากนั้น xValue2 = Target.Value Application.Undo xValue1 = Target.Value Target.Value = xValue2 ถ้า "xValue1 ถ้า " " แล้วถ้า xValue2 "" แล้วถ้า xValue1 = xValue2 หรือ _ InStr(1, xValue1, ", " & xValue2) หรือ _ InStr(1, xValue1, xValue2 & ",") จากนั้น Target.Value = xValue1 Else Target.Value xValue1 & ", " & xValue2 End If End If End If End If Application.EnableEvents = True End Sub ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ใช้งานได้ดี แต่ฉันไม่สามารถลบรายการเมื่อเลือกได้ ข้อเสนอแนะใด ๆ ในกรณีที่ฉันคลิกบางสิ่งโดยไม่ได้ตั้งใจและจำเป็นต้องลบออกโดยไม่ (หวังว่า) ล้างเซลล์ทั้งหมดและเริ่มต้นใหม่? นอกจากนี้ สำหรับผู้ที่ต้องการกำหนดคอลัมน์หรือคอลัมน์ Contextures มีส่วนเพิ่มเติมที่ดีในโค้ดที่ให้ไว้ที่นี่ ซึ่งช่วยให้คุณทำสิ่งนั้นได้ http://www.contextures.com/excel-data-validation-multiple.html#column
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
[quote]ใช้งานได้ดี แต่ฉันไม่สามารถลบรายการเมื่อเลือกได้ ข้อเสนอแนะใด ๆ ในกรณีที่ฉันคลิกบางสิ่งโดยไม่ได้ตั้งใจและจำเป็นต้องลบออกโดยไม่ (หวังว่า) ล้างเซลล์ทั้งหมดและเริ่มต้นใหม่? นอกจากนี้ สำหรับผู้ที่ต้องการกำหนดคอลัมน์หรือคอลัมน์ Contextures มีส่วนเพิ่มเติมที่ดีในโค้ดที่ให้ไว้ที่นี่ ซึ่งช่วยให้คุณทำสิ่งนั้นได้ http://www.contextures.com/excel-data-validation-multiple.html#columnโดยการกุศล[/quote] รหัสทำงานได้ดี อย่างไรก็ตาม ฉันไม่สามารถยกเลิกการเลือกรายการใดรายการหนึ่งได้ เมื่อฉันต้องการลบรายการออกจากการเลือก รายการนั้นจะไม่ถูกลบออก ใครบ้างประสบปัญหานี้เช่นกัน?[/quote] สวัสดีทุกคน พบวิธีแก้ปัญหาสำหรับปัญหานี้..โปรดแบ่งปัน..
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี รหัสทำงานได้ดี อย่างไรก็ตาม ฉันไม่สามารถยกเลิกการเลือกรายการใดรายการหนึ่งได้ เมื่อฉันต้องการลบรายการออกจากการเลือก รายการนั้นจะไม่ถูกลบออก ไม่มีใครประสบปัญหานี้ด้วยหรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มีการตอบสนองต่อปัญหานี้หรือไม่ มันเป็นปัญหาเดียวกันกับที่ฉันมี ดูเหมือนจะไม่มีทางลบรายการที่เลือกไว้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ลบเนื้อหาในเซลล์ แล้วเลือกใหม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีทุกคน ฉันมีรหัสนี้บนแผ่นงาน Excel และมันทำความสะอาดเนื้อหาจากรายการแบบหล่นลงเมื่อเลือกเซลล์ - ฉันรู้แล้วว่าส่วนใดของรหัสที่ทำอยู่ (ส่วนที่ระบุว่า 'fillRng.ClearContents') และฉัน ได้ลองใช้วิธีข้างต้นเพื่อแก้ไขไม่สำเร็จ ... ฉันยังใหม่กับการเขียนโปรแกรม VBA เป็นต้น ใครก็ได้ช่วยเสนอความช่วยเหลือเกี่ยวกับวิธีการเปลี่ยนแปลงเพื่อที่ว่าเมื่อเลือกเซลล์แล้วจะไม่ชัดเจนและรายการจะไม่เป็น ขอซ้ำ?? ตัวเลือก Explicit Dim fillRng As Range Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Qualifiers As MSForms.ListBox Dim LBobj As OLEObject Dim i As Long Set LBobj = Me.OLEObjects("ListBox1") Set Qualifiers = LBobj.Object If Target.Row > 3 และ Target.Column = 3 จากนั้นตั้งค่า fillRng = Target With LBobj .Left = fillRng.Left .Top = fillRng.Top .Width = fillRng.Width .Height = 155 .Visible = True End With Else LBobj.Visible = False If ไม่ fillRng ไม่มีอะไร แล้ว fillRng.ClearContents กับ Qualifiers ถ้า .ListCount 0 แล้ว For i = 0 To .ListCount - 1 ถ้า fillRng.Value = "" ถ้า .Selected(i) แล้ว fillRng.Value = .List(i) อื่น ถ้า .Selected(i) จากนั้น fillRng.Value = _ fillRng.Value & ", " & .List(i) End If Next End If For i = 0 To .ListCount - 1 .Selected(i) = False Next End With Set fillRng = ไม่มีอะไรสิ้นสุดหากสิ้นสุดหากสิ้นสุด Sub
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีทุกคน ฉันสามารถทำรายการแบบหล่นลงได้อย่างสมบูรณ์แบบ แต่คำถามของฉันคือ: เมื่อฉันเลือกทุกรายการที่ถูกรวมเข้าด้วยกัน รายการจะเรียงต่อกันในแนวนอนผ่านเซลล์ เช่น สีเหลือง สีเขียว สีดำ สีแดง แต่ฉันจะทำให้มันดูเป็นแนวตั้งได้อย่างไร เช่น ส้ม เหลือง บลัช แดง เพราะในแนวนอน เซลล์จะยาวมากเมื่อเลือกรายการจำนวนมาก คุณช่วยบอกฉันได้ไหมว่ามีวิธีใดในการทำเช่นนี้? ขอบคุณ Desiree
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันจัดการเพื่อใช้รหัสนี้และสร้างกล่องดรอปดาวน์การเลือกหลายรายการได้สำเร็จ มันใช้งานได้เมื่อฉันปิดและเปิดใหม่ในวันที่ต่างกัน อย่างไรก็ตาม ตอนนี้ไม่ใช่ทุกเซลล์ที่ฉันเลือกในตอนแรกจะอนุญาตให้มีการเลือกหลายรายการ เฉพาะที่ทำก่อนหน้านี้ แม้จะใช้โค้ดสำหรับทั้งสเปรดชีต คุณช่วยได้ไหม
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันมีปัญหาเดียวกัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เซลล์มักจะถูกล็อค คลิกขวาที่เซลล์ทั้งหมด ไปที่รูปแบบเซลล์ การป้องกัน จากนั้นยกเลิกการเลือกตัวเลือกเซลล์ที่ถูกล็อก
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันได้สร้างรายการแบบหล่นลงที่สามารถเลือกข้อความได้หลายแบบ เช่น "โภชนาการ" "น้ำหนัก" และ "งาน" สำหรับเหตุผลที่ผู้โทรแต่ละคนโทรมา ฉันมีหน้าสรุปซึ่งฉันต้องการดูจำนวนเหตุผลแต่ละข้อ ถูกระบุในเดือนใดเดือนหนึ่ง ฉันจะใช้สูตรใดในการบอก Excel ให้ดึงและนับแต่ละรายการแยกกันในเดือนที่กำหนด ปัจจุบัน วิธีการตั้งค่าของฉัน จะนับอย่างถูกต้องก็ต่อเมื่อฉันมีเหตุผลหนึ่งข้อในเซลล์สำหรับผู้โทรแต่ละคน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอให้เป็นวันที่ดี,
ขออภัยไม่สามารถช่วยคุณแก้ปัญหานี้ได้ โปรดแจ้งให้เราทราบหากคุณพบคำตอบ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันกำลังพยายามสร้าง 4 คอลัมน์พร้อมรายการดรอปดาวน์ ซึ่งฉันสามารถเลือกค่าได้หลายค่า ฉันจะแก้ไขโค้ด VBA "รายการดรอปดาวน์ที่มีการเลือกหลายรายการ" ได้อย่างไร เพื่อที่เมื่อฉันคลิกค่าที่ป้อนแล้ว จะเป็นการลบออกจากเซลล์ ขอบคุณล่วงหน้า.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เรียน คุณแรนดี้
คุณหมายถึงอะไร "เมื่อฉันคลิกที่ค่าที่ป้อนแล้ว ค่านั้นจะเป็นการลบออกจากเซลล์"
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันมีคำถามเดียวกัน รายการแบบหล่นลงของฉันไม่จำค่าที่เลือก ถ้ามีคนคลิกที่เซลล์ที่มีการเติมข้อมูลแล้ว (ไม่ใช่โดยพวกเขา แต่เป็นคนอื่น) ค่าที่เลือกจะถูกล้างและเซลล์จะว่างเปล่าอีกครั้ง
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันใช้รหัสด้านล่างเพื่ออนุญาตให้มีการเลือกหลายรายการบนหลายแผ่นงาน แต่เมื่อฉันไปที่แผ่นงานอื่นในสมุดงาน การเลือกหลายรายการจะหายไป เมื่อฉันบันทึกไฟล์และกลับเข้ามาใหม่ มันจะใช้งานได้กับแท็บหนึ่งที่มีรหัส แต่อีกครั้งเมื่อฉันคลิกบนแท็บอื่นที่มีรหัส มันจะใช้งานไม่ได้อีกต่อไป มีแนวคิดใดบ้างที่จะแก้ไขได้ ดังนั้นหากฉันคลิกบนเวิร์กชีตที่มีรหัส VBA จะอนุญาตให้เลือกได้หลายรายการเสมอ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี อิก บิน โทลเลอร์ VBA Laie Ich versuche den Code so zu modifizieren, dass
a) ตาย Mehrfachauswahl nicht ใน allen, sondern nur ein zwei Spalten aktiv ist
b) ich Items auch wieder rausnehmen kann, zB in dem ich in der Listenauswahl das Item noch einmal anklicke (Beispiel: ich habe über die Mehrfachauswahl ausgewählt: A, D, X, Y... nun fällt d ​​d gehört. Beim aktuellen Code müsste ich Eingaben entfernen und neu auswählen).
ขอบคุณล่วงหน้า!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันไม่สามารถดำเนินการสร้างรายการดรอปดาวน์ได้หลายรายการ ฉันได้ฟังบทช่วยสอนและอ่านเนื้อหาแล้ว แต่ยังสร้างไม่ได้ ใครสามารถช่วยฉันได้บ้าง
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันรู้ว่านี่อาจเป็นการสุ่มทั้งหมด แต่ฉันใช้รูปแบบของ VBA โดยไม่มีปัญหา ยกเว้นในหน้าเดียว หากคุณเลือกสามตัวเลือกแรก จะไม่อนุญาตให้คุณเลือกตัวเลือกที่สี่ มันจะให้คุณเลือกตัวเลือกที่ 5, 6 และอื่นๆ ไม่ใช่ตัวเลือกที่ 4 ความคิด?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีโรเบิร์ต,
ฉันได้ทดสอบรหัสแล้ว แต่ไม่พบปัญหาตามที่คุณกล่าวถึง ช่วยบอกหน่อยได้ไหมว่าคุณกำลังใช้ Excel เวอร์ชันใดอยู่ ขอบคุณสำหรับความคิดเห็นของคุณ.
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
โหลดเพิ่มเติม

ช่องทางอื่นๆ

ลิขสิทธิ์© 2009 - wwwextendoffice.com | สงวนลิขสิทธิ์. ขับเคลื่อนโดย ExtendOffice. | แผนผังเว็บไซต์
Microsoft และโลโก้ Office เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Microsoft Corporation ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ
ได้รับการปกป้องโดย Sectigo SSL