GIúp code Xác định Listbox đang có dữ liệu hay đang rỗng ( trống )

Liên hệ QC

minhtuan55

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
23/3/16
Bài viết
705
Được thích
52
Chào cả nhà GPE ! Em cần 1 đoạn code hay hàm để kiểm tra là Lixtbox hiện đang có dữ liệu hay là trống. Xin chân thành cảm ơn !
214975
 
Bạn dùng: If Listbox.ListCount = 0 Then...
 
Upvote 0
Bạn dùng: If Listbox.ListCount = 0 Then...

Mình đã Text vẫn không được bạn à. Mình thử xóa trắng Rowsoure A1:C12 của listbox đi Code vẫn không hiểu. sao dữ liệu rỗng mà ListBox.ListCount = 12 nhĩ


Private Sub CommandButton1_Click()
If ListBox.ListCount = 0 Then
MsgBox ("Rong")
Else
MsgBox (" co du lieu")
End If
End Sub


214978
 

File đính kèm

  • list box.xlsb
    17.5 KB · Đọc: 11
Upvote 0
Listbox.List.Value = "" thử xem.
 
Upvote 0
Mình đã Text vẫn không được bạn à. Mình thử xóa trắng Rowsoure A1:C12 của listbox đi Code vẫn không hiểu. sao dữ liệu rỗng mà ListBox.ListCount = 12 nhĩ

Tôi không dùng listbox bên excel nhưng tôi nghĩ muốn xoá Listbox, bạn không thể chỉ xoá vùng dữ liệu vì nó đã add từng dòng vô listbox rồi.
Dùng:
Listbox.Clear --> nếu dùng AddItem
Listbox.RowSource ="" --> nếu bạn dùng Row Source

hoặc dùng phương thức Remove:

Mã:
Function clearListBox(frm As UseFormForm)
    Do Until ListBox.ListCount = 0
        frm.ListBox.RemoveItem(0)
    Loop
End Function
 
Upvote 0
Listbox.List.Value = "" thử xem.


báo lỗi 424 Anh
214987
Bài đã được tự động gộp:

Tôi không dùng listbox bên excel nhưng tôi nghĩ muốn xoá Listbox, bạn không thể chỉ xoá vùng dữ liệu vì nó đã add từng dòng vô listbox rồi.
Dùng:
Listbox.Clear --> nếu dùng AddItem
Listbox.RowSource ="" --> nếu bạn dùng Row Source

hoặc dùng phương thức Remove:

Mã:
Function clearListBox(frm As UseFormForm)
    Do Until ListBox.ListCount = 0
        frm.ListBox.RemoveItem(0)
    Loop
End Function


Thank bác. Ý em không phải hỏi hàm Xóa listbox gì hết. Ý em là dùng hàm nào để xác định Listbox đó đang rỗng hay có dữ liệu thôi
 
Upvote 0
báo lỗi 424 Anh
View attachment 214987
Bài đã được tự động gộp:
Áp dụng Listbox trên UserForm thì RowSource = ""
Áp dụng Listbox trên sheet thì dùng .ListFillRange = ""
Nhưng Listbox bạn là có dữ liệu, nó xác định RowSource/ListFillRange là 1 mảng/vùng chứa dữ liệu, có thể dữ liệu đó có giá trị rỗng.
Xác định 1 giá trị trên Listbox có rỗng hay không, bạn thử xem: If ListBox.Column(0, 2) = "" Then, trong đó 0 là cột đầu tiên, 2 là dòng thứ 3 trong Listbox.
Bài đã được tự động gộp:

Bạn thử xem file đính kèm nhe.
 

File đính kèm

  • Copy of list box-1.xlsb
    18.4 KB · Đọc: 10
Lần chỉnh sửa cuối:
Upvote 0

File đính kèm

  • list box.xlsb
    21.7 KB · Đọc: 6
Upvote 0
Thank bác. Ý em không phải hỏi hàm Xóa listbox gì hết. Ý em là dùng hàm nào để xác định Listbox đó đang rỗng hay có dữ liệu thôi

:) Tôi hiểu ý bạn chứ. Tôi đưa ra các thao tác liên quan để sau này ra kết quả là listbox rỗng thôi.
Tôi đang dùng listbox dựa trên range "ListFillRange" và gặp trường hợp cái range đó không có dữ liệu nhưng listbox vẫn có một đống dòng trắng theo Range. Do đó tôi thêm một cách là dùng Name động cho cái range của listbox. Khi có thêm dữ liệu, range dài ra, khi xoá dữ liệu range thu ngắn lại đến khi = 0 dòng, khi đó dùng Listcount sẽ phản ánh đúng hiện trạng dòng trong listbox. Không rành lắm nên phải dùng chiêu thôi.
Đây là một cách bạn có thể tham khảo.
 
Upvote 0

cảm ơn bạn. Đáp án của bạn giúp là Trật Lất
 
Upvote 0
cảm ơn bạn. Đáp án của bạn giúp là Trật Lất
Thay vì nói câu cộc lốc thế thì nên giải thích khái niệm TRỐNG của bạn, vì tôi đoán là mọi người hiểu khác.

Với tôi ListBox TRỐNG khi và chỉ khi nó không có item nào. Tức nếu ListBox có ít nhất 1 item thì dù tất cả các item đều có giá trị là chuỗi rỗng "" thì ListBox đó với tôi không là TRỐNG. Các item của nó là rỗng nhưg bản thân ListBox không TRỐNG.

Tôi có cảm giác là với bạn ListBox TRỐNG khi và chỉ khi "NHÌN CHẢ THẤY GÌ". Tức với bạn thì ListBox thậm chí có thể có 1000 item với giá trị rỗng "" thì ListBox với bạn là TRỐNG.

Vậy hãy giải thích cho mọi người hiểu là bạn đang định nói tới loại TRỐNG nào. Lúc đó thì sẽ có câu trả lời không Trật Lất
 
Upvote 0
Theo như file của #3 của bạn thì:
ListBox có nguồn là vùng được gán tên là 'datanew' (Lần sau nên gán tên là 'DataNew' hay là 'NewData')
Bạn xóa vùng dữ liệu này trên trang tính cách gì đi nữa, ListBox của bạn vẫn luôn là 12 dòng & 3 cột dữ liệu, tuy nó là "rỗng"

Thân ái!
 
Upvote 0
Thay vì nói câu cộc lốc thế thì nên giải thích khái niệm TRỐNG của bạn, vì tôi đoán là mọi người hiểu khác.
...
Giải thích hết thì còn gì là bí mật "project" nữa bác.
Hình như do Xê Cọng Cọng nó có cái gọi là hàm chồng, nhiều cái hàm có quyền tên TRỐNG, miễn là nó có cái chữ ký (signature - tức là parameter list) để nhận dạng muốn gọi.
Hoặc là trình độ đa hình cao hơn nữa, siêu Xê Cọng Cọng mờ, thớt dùng kỹ thuật bảng tra ảo (virtual table). Hàm TRỐNG có cả một array chứa pointers cho chúng, tuỳ theo đối tượng mà gọi đúng hàm.

...Bạn xóa vùng dữ liệu này trên trang tính cách gì đi nữa, ListBox của bạn vẫn luôn là 12 dòng & 3 cột dữ liệu, tuy nó là "rỗng"
Cách của thớt ngừoi khác không hiểu nổi đâu. Thớt vẫn hằng nói vậy mà.
 
Upvote 0
Giải thích hết thì còn gì là bí mật "project" nữa bác.
Nói giải thích để người ta rút kinh nghiệm thôi chứ cũng có thể đoán mò mà bác.

Nhìn ảnh của người ta thấy rõ ràng là ListBox có nhiều item (scrollbar) mà người ta lại ghi to tướng là "ListBox Trống" nên tôi đoán mò là Trống khi và chỉ khi "Không nhìn thấy gì".

Ngoài ra từ câu hỏi" "Code vẫn không hiểu. sao dữ liệu rỗng mà ListBox.ListCount = 12", thì cũng đoán là ListBox = Trống <=> "dữ liệu rỗng" <=> "Không nhìn thấy gì"

@chủ thớt,
Có hiểu ListCount là gì không?

Tôi có câu hỏi tu từ. Tôi xây xong 20 nhà kho. Nhưng hết tiền rồi nên chưa mua được hàng. 20 nhà kho rỗng. Vậy tôi có kho không? Có ai dám nói là trên mảnh đất của tôi chả có gì, TRỐNG RỖNG? KhoCount sẽ trả về bao nhiêu? 0 hay 20?
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom