Hỏi về ListBox (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Cá ngừ F1

( ͡° ͜ʖ ͡°)
Thành viên BQT
Moderator
Tham gia
1/1/08
Bài viết
2,579
Được thích
3,723
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Quan hệ.. và quan hệ..
E có tạo ListBox với lựa chọn MultiSelect
Có khai báo LinkedCell là ô I10
Tuy nhiên khi chọn vào các check box ko thấy ra kết quả j
E muốn chọn check box nào thì hiện trên từng dòng được ko ạh?
VD: chọn 1 thì ra kết quả ở ô I10, chọn 2 ra kết quả ở ô I11
 

File đính kèm

E có tạo ListBox với lựa chọn MultiSelect
Có khai báo LinkedCell là ô I10
Tuy nhiên khi chọn vào các check box ko thấy ra kết quả j
E muốn chọn check box nào thì hiện trên từng dòng được ko ạh?
VD: chọn 1 thì ra kết quả ở ô I10, chọn 2 ra kết quả ở ô I11
Bạn xóa cái LinkCell của bạn đi, không có tác dụng gì đâu, bởi có quá nhiều mâu thuẫn trong vấn đề chọn nhiều mục thì nó biết lấy mục nào mà nó chọn vào phải không!?

Chỉ có thể thực hiện yêu cầu của bạn khi sử dụng code mà thôi:

Trong Module của sheet đó, bạn đặt thủ tục này vào:

Mã:
Private Sub ListBox2_Change()
    Application.EnableEvents = False
    Dim r As Long
    With ListBox2
        For r = 0 To .ListCount - 1
            If .Selected(r) Then
                Range("I" & r + 10) = .List(r)
            Else
                Range("I" & r + 10) = ""
            End If
        Next
    End With
    Application.EnableEvents = True
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Cách này tốt hơn, không cần dùng vòng lặp!

Mã:
Private Sub ListBox2_Change()
    Application.EnableEvents = False
    With ListBox2
        Range("I" & .ListIndex + 10) = IIf(.Selected(.ListIndex), .List(.ListIndex), "")
    End With
    Application.EnableEvents = True
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Cách này tốt hơn, không cần dùng vòng lặp!

Mã:
Private Sub ListBox2_Change()
    Application.EnableEvents = False
    With ListBox2
        Range("I" & .ListIndex + 10) = IIf(.Selected(.ListIndex), .List(.ListIndex), "")
    End With
    Application.EnableEvents = True
End Sub
Muốn cho hiện kết quả theo hàng ngang thì sửa code thế nào a.
 
Upvote 0
Muốn cho hiện kết quả theo hàng ngang thì sửa code thế nào a.
Thì vầy thôi:

Mã:
Private Sub ListBox2_Change()
    Application.EnableEvents = False
    With ListBox2
        Range("I10").Offset(, .ListIndex) = IIf(.Selected(.ListIndex), .List(.ListIndex), "")
    End With
    Application.EnableEvents = True
End Sub

Hàng ngang:

Mã:
Range("I10")[B][COLOR=#ff0000].Offset([/COLOR][COLOR=#0000cd],[/COLOR][COLOR=#ff0000] .ListIndex)[/COLOR][/B] = IIf(.Selected(.ListIndex), .List(.ListIndex), "")

Hàng dọc:

Mã:
Range("I10")[COLOR=#ff0000][B].Offset(.ListIndex)[/B][/COLOR] = IIf(.Selected(.ListIndex), .List(.ListIndex), "")
 
Lần chỉnh sửa cuối:
Upvote 0
Thì vầy thôi:

Mã:
Private Sub ListBox2_Change()
    Application.EnableEvents = False
    With ListBox2
        Range("I10").Offset(, .ListIndex) = IIf(.Selected(.ListIndex), .List(.ListIndex), "")
    End With
    Application.EnableEvents = True
End Sub

Hàng ngang:

Mã:
Range("I10")[B][COLOR=#ff0000].Offset([/COLOR][COLOR=#0000cd],[/COLOR][COLOR=#ff0000] .ListIndex)[/COLOR][/B] = IIf(.Selected(.ListIndex), .List(.ListIndex), "")

Hàng dọc:

Mã:
Range("I10")[COLOR=#ff0000][B].Offset(.ListIndex)[/B][/COLOR] = IIf(.Selected(.ListIndex), .List(.ListIndex), "")
E hỏi thêm chút
Trong trường hợp ở ô LinkedCell e xóa bằng tay (chọn và xóa)
Thì ở hộp check box ko tự bỏ chọn (tích) đi ?
 
Upvote 0

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

Back
Top Bottom