Đưa dữ liệu từ Listbox vào Sheet

Liên hệ QC

Hoang Dac Cat

Thành viên mới
Tham gia
3/6/16
Bài viết
5
Được thích
0
Chào mọi người

Nhờ mọi người giúp đỡ làm cách nào chuyển được dữ liệu từ Listbox xuống Sheet như file đính kèm
Hiện tại đoạn mã mình viết thì cột thứ 2,3 luôn bị lệch 1 dòng so với cột đầu tiên
 

File đính kèm

Dòng cuối xác định 1 lần thôi - trước For c = chứ không phải trong vòng lặp. Đây chính là nguyên nhân. Dể hiểu thôi. Vd. trước khi thực hiện code thì vd. dòng cuối cùng có dữ liệu là 99. Như thế khi chạy For c = 0 ... thì dữ liệu cột A được nhập vào A100 (dòng 100) - xuống 1 dòng do OFFSET(1, ...). Ở các vòng lặp For c = 1... tiếp theo code lại xác định dòng cuối, mà dòng cuối có dữ liệu bây giờ là 100 (A100) nên từ cột B trở đi dữ liệu mới được nhập vào dòng 101 - cũng xuống 1 dòng do OFFSET(1, ...)
Sửa thành
Mã:
Private Sub cmbEnter_Click()
Dim r As Long, c As Long, rng As Range
For r = 0 To ListBox1.ListCount - 1
    If Me.ListBox1.Selected(r) = True Then
        Set rng = Sheet1.Range("A2000").End(xlUp).Offset(1)
        For c = 0 To ListBox1.ColumnCount - 1
            rng.Offset(0, c).Value = ListBox1.List(r, c)
        Next c
        Exit For
    End If
Next r
rng.Offset(0, 5) = Me.TextBox1.Value
rng.Offset(0, 6) = Me.TextBox2.Value
End Sub

Nhưng ListBox của bạn chỉ cho chọn 1 nên chả cần vòng For r = ...
Mã:
Private Sub cmbEnter_Click()
Dim r As Long, c As Long, rng As Range
    If ListBox1.ListIndex > -1 Then
        r = ListBox1.ListIndex
        Set rng = Sheet1.Range("A2000").End(xlUp).Offset(1)
        For c = 0 To ListBox1.ColumnCount - 1
            rng.Offset(0, c).Value = ListBox1.List(r, c)
        Next c
        rng.Offset(0, 5) = Me.TextBox1.Value
        rng.Offset(0, 6) = Me.TextBox2.Value
    End If
End Sub
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom