Hepl! Listbox báo lỗi could not set the list property.invaild property value

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

hoangpm3

Thành viên mới
Tham gia
24/2/20
Bài viết
7
Được thích
0
Dear các anh chị
Hiện tại em đang gặp lỗi could not set the list property.invaild property value khi chạy
Hiện tại em muốn làm file với yêu cầu
  • Tại combobox1 sẽ được nạp các giá trị tại cột L của sheet mprlist và bỏ qua các giá trị trùng lặp
  • Nạp danh sách từ ô A1 tới cột S với dòng cuối cùng có dữ liệu ở cột B và danh sách sẽ thay đổi dựa theo giá trị đang hiển thị ở combobox1 vào listbox1
Nhưng khi chạy em gặp lỗi could not set the list property.invaild property value tại dòng code ListBox1.List(ListBox1.ListCount - 1, 10) = ws.Cells(i, "K").Value
Em đã cố gắng tìm để sửa lỗi mấy ngày nay nhưng vẫn không hiểu và không thể khắc phục được
Mong các anh chị giúp em với ạ, em xin chân thành cảm ơn
 

File đính kèm

  • Book1.xlsm
    23.4 KB · Đọc: 5
Em đã cố gắng tìm để sửa lỗi mấy ngày nay nhưng vẫn không hiểu và không thể khắc phục được
Mong các anh chị giúp em với ạ, em xin chân thành cảm ơn
Sửa vậy đi. Còn chi tiết thì hông rõ na
Mã:
Sub maikhongduoc()
    Dim ws As Worksheet
    Dim lr As Long
    Set ws = ThisWorkbook.Sheets("mprlist")
    lr = ws.Range("B" & Rows.Count).End(xlUp).Row
    UserForm1.ListBox1.List = ws.Range("A1:S" & lr).Value
    UserForm1.Show
End Sub
 
Upvote 0
Sửa vậy đi. Còn chi tiết thì hông rõ na
Mã:
Sub maikhongduoc()
    Dim ws As Worksheet
    Dim lr As Long
    Set ws = ThisWorkbook.Sheets("mprlist")
    lr = ws.Range("B" & Rows.Count).End(xlUp).Row
    UserForm1.ListBox1.List = ws.Range("A1:S" & lr).Value
    UserForm1.Show
End Sub
dạ không ý em là vấn đề ở userform1 ấy ạ còn module1 thì em chỉ nháp thôi ạ :(
 
Upvote 0
thì thấy bạn kêu lỗi. sửa code kia là userform sẽ hiện lên mà
dạ ý em đang muốn sửa là khi giá trị ơ combobox1 thay đổi thì giá trị dữ liệu hiển thị của listbox1 sẽ thay đổi tương ứng nhưng mà khi em chạy nó toàn báo lỗi "could not set the list property.invaild property value" tại dòng code ListBox1.List(ListBox1.ListCount - 1, 10) = ws.Cells(i, "K").Value mà em không tài nào tìm được nguyên nhân và cách khắc phục
 
Upvote 0
@Chủ bài đăng: Tham khảo file đơn giản này & sửa lại theo ý mình nè:
 

File đính kèm

  • Form.rar
    22 KB · Đọc: 4
Upvote 0
@Chủ bài đăng: Tham khảo file đơn giản này & sửa lại theo ý mình nè:
Ké tý của anh @SA_DQ, bổ sung cái hàm UniqueList2D để lấy list không trùng.

PHP:
Private Sub Worksheet_Activate()
        Dim Arr As Variant
        Arr = UniqueList2D(1, Sheets("DuLieu").Range("L2:L17").Value)
        ListBoxData.cbMPS.List = Application.Transpose(Arr)
        ListBoxData.Show
End Sub
'https://www.giaiphapexcel.com/diendan/threads/53572/post-338167
Function UniqueList2D(UniqueCol As Long, sArray)
  Dim ReArr()
  Dim iRw, iRws, iCols, iCol, iCount
  iRws = UBound(sArray, 1)
  iCols = UBound(sArray, 2)
  On Error Resume Next
  With CreateObject("Scripting.Dictionary")
        For iRw = 1 To iRws
          If sArray(iRw, UniqueCol) <> "" Then
            If Not .Exists(sArray(iRw, UniqueCol)) Then
                .Add sArray(iRw, UniqueCol), ""
                iCount = iCount + 1
                ReDim Preserve ReArr(1 To iCols, 1 To iCount)
                For iCol = 1 To iCols
                   ReArr(iCol, iCount) = sArray(iRw, iCol)
                Next
            End If
          End If
        Next
    UniqueList2D = Application.Transpose(ReArr)
  End With
End Function
 
Upvote 0
Web KT
Back
Top Bottom