Nhờ xử lý lỗi hiển thị ở ListBox. Em chân thành cảm ơn!

Liên hệ QC

vietnamcpro

Thành viên mới
Tham gia
2/2/13
Bài viết
3
Được thích
0
Chào các anh chị em đang tạo Form tìm kiếm cho file dữ liệu. Nhưng em bị mắc ở chỗ nếu sử dụng hàm excel "OFFSET" để gán "Trình quản lý tên" thì Listbox sẽ hiển thị đủ số cột theo yêu cầu.
Nhưng dùng VBA như file đính kèm thì nó giới hạn số cột hiển thị, nó chỉ hiện thị không quá 10 cột, em đã chỉnh tất cả các thông số của Listbox nhưng không được.
Nên nhờ anh chị cao thủ , kiểm tra xem code này bị sai ở đâu ạ giúp em với ạ.

Hình ảnh lỗi.jpg


Code:

Private Sub CommandButton1_Click()
On Error Resume Next
Me.ListBox1.Clear
Me.ListBox1.AddItem Sheet2.Cells(1, "A")
For B = 2 To 18
Me.ListBox1.List(ListBox1.ListCount - 1, B - 1) = Sheet2.Cells(1, B)
Next B
Me.ListBox1.Selected(0) = True
Dim i As Long
Dim k As Long
For x = 1 To Application.WorksheetFunction.CountA(Sheet2.Range("A:A"))
For i = 1 To 18

If Sheet2.Cells(i, 1) = x And Me.TextBox1.Text <> "" Then
k = Sheet2.Cells(i, 1).Row
Me.ListBox1.AddItem Sheet2.Cells(k, 1).Value
For c = 1 To i
Me.ListBox1.List(ListBox1.ListCount - 1, c) = Sheet2.Cells(k, c + 1).Value
Next c
Sheet2.Cells(i, 9).Value = k
End If
Next i
Next x
End Sub

Thông số Listbox:

1621051384576.png
 

File đính kèm

  • Search Form 1 check.xlsm
    48.9 KB · Đọc: 7
Lần chỉnh sửa cuối:
Bạn tham khảo link sau:
Khi bạn dùng additem thì chỉ được 10 cột thôi, nên phải dùng .List = Arr
 
Upvote 0
Chào các anh chị em đang tạo Form tìm kiếm cho file dữ liệu. Nhưng em bị mắc ở chỗ nếu sử dụng hàm excel "OFFSET" để gán "Trình quản lý tên" thì Listbox sẽ hiển thị đủ số cột theo yêu cầu.
Nhưng dùng VBA như file đính kèm thì nó giới hạn số cột hiển thị, nó chỉ hiện thị không quá 10 cột, em đã chỉnh tất cả các thông số của Listbox nhưng không được.
Nên nhờ anh chị cao thủ , kiểm tra xem code này bị sai ở đâu ạ giúp em với ạ.

View attachment 258672


Code:

Private Sub CommandButton1_Click()
On Error Resume Next
Me.ListBox1.Clear
Me.ListBox1.AddItem Sheet2.Cells(1, "A")
For B = 2 To 18
Me.ListBox1.List(ListBox1.ListCount - 1, B - 1) = Sheet2.Cells(1, B)
Next B
Me.ListBox1.Selected(0) = True
Dim i As Long
Dim k As Long
For x = 1 To Application.WorksheetFunction.CountA(Sheet2.Range("A:A"))
For i = 1 To 18

If Sheet2.Cells(i, 1) = x And Me.TextBox1.Text <> "" Then
k = Sheet2.Cells(i, 1).Row
Me.ListBox1.AddItem Sheet2.Cells(k, 1).Value
For c = 1 To i
Me.ListBox1.List(ListBox1.ListCount - 1, c) = Sheet2.Cells(k, c + 1).Value
Next c
Sheet2.Cells(i, 9).Value = k
End If
Next i
Next x
End Sub

Thông số Listbox:

View attachment 258673
Bạn thử thêm code sau vào userform nhé
Mã:
Private Sub UserForm_Initialize()
    Dim lst As Variant
    ReDim lst(0, 18)
    With ListBox1
        .List = lst
        .ColumnCount = UBound(.List, 2) + 1
    End With
End Sub
 
Upvote 0
Web KT
Back
Top Bottom