Page 1 of 1

การคืนค่าของ Listbox แบบ Multi-Select

Posted: Fri Aug 10, 2018 10:40 am
by OnliezU
สวัสดีครับ รบกวนขอคำแนะนำครับ
ผมติดปัญหา ในกรณีที่ตั้งค่าของ Listbox เป็น multi-select คือผมไม่สามารถทำให้ค่าที่ผู้ใช้งานเลือกจาก Listbox ที่แสดงผลอยู่ใน Worksheet มันแสดงค่ากลับไปยัง Listbox บนฟอร์มที่ตั้งขึ้นว่า ข้อนั้นๆ ถูกเลือก แต่ในกรณีที่ single select สามารถทำได้ตาม code ด้านล่าง ผมต้องเพิ่มเติมอย่างไรบ้างครับ

ขอบคุณครับ

1. code ด้านล่างเป็น code ที่ให้ค่าจาก Listbox2 แสดงใน cells ที่ผมต้องการ

Code: Select all

Myvar = ""
For i = 0 To ListBox2.ListCount - 1
    If ListBox2.Selected(i) Then
                    If Myvar = "" Then
                    Myvar = Me.ListBox2.List(i, 0)
                Else
                    Myvar = Myvar & "," & Me.ListBox2.List(i, 0)
                End If
    End If
Next i
Cells(V_ROW, 13).Value = Myvar

2. code ที่ใช้แสดงผลกรณีที่เป็น single select

Code: Select all

edit_dt_bx1.ListBox2.Value = Sheets("Form").Cells(V_ROW, 13).Value

Re: การคืนค่าของ Listbox แบบ Multi-Select

Posted: Fri Aug 10, 2018 11:34 am
by parakorn
แนบไฟล์เพื่อให้ผู้ตอบสามารถเข้าถึงปัญหาได้ทันที และ เพื่อความสะดวกสำหรับผู้ที่เข้ามาศึกษาครับ

Re: การคืนค่าของ Listbox แบบ Multi-Select

Posted: Fri Aug 10, 2018 3:41 pm
by OnliezU
ขออภัยครับ ผมได้แนบไฟล์มาแล้วดังแนบครับ แต่เป็นเพียงบางส่วนนะครับ ซึ่งไฟล์จริงมีขนาดที่ใหญ่กว่านี้มากครับ

ขอบคุณครับ

Re: การคืนค่าของ Listbox แบบ Multi-Select

Posted: Fri Aug 10, 2018 11:04 pm
by อรวีร์
แก้ไขบรรทัด edit_dt_bx1.ListBox2.Value = Sheets("Form").Cells(V_ROW, 4).Value
เป็น...

Code: Select all

For i = 0 To edit_dt_bx1.ListBox2.ListCount - 1
    If InStr(Sheets("Form").Cells(V_ROW, 4).Value, edit_dt_bx1.ListBox2.List(i, 0)) > 0 Then
        edit_dt_bx1.ListBox2.Selected(i) = True
    End If
Next 
i

Re: การคืนค่าของ Listbox แบบ Multi-Select

Posted: Tue Aug 14, 2018 8:53 am
by OnliezU
ตรงความต้องการครับ


ขอบคุณทุกท่านมากครับ