Combobox thỏa điều kiện mảng (1 người xem)

Liên hệ QC

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

themorzer

Thành viên chính thức
Tham gia
24/5/13
Bài viết
95
Được thích
1
Chào các bạn, minh có Sheet đính kèm, nhưng không biết code co sai chổ nào, để cho combobox hiển thị các giá trị
của dòng đầu tiên, thỏa điều kiện ô tô vàng với dòng tương ứng khác rổng, chương trinh mình viết không biết sai chổ nào nó k hiển thị
mong mọi người giúp đỡ
 

File đính kèm

Chào các bạn, minh có Sheet đính kèm, nhưng không biết code co sai chổ nào, để cho combobox hiển thị các giá trị
của dòng đầu tiên, thỏa điều kiện ô tô vàng với dòng tương ứng khác rổng, chương trinh mình viết không biết sai chổ nào nó k hiển thị
mong mọi người giúp đỡ
Không biết có phải như vầy không
 

File đính kèm

Upvote 0
Chào các bạn, minh có Sheet đính kèm, nhưng không biết code co sai chổ nào, để cho combobox hiển thị các giá trị
của dòng đầu tiên, thỏa điều kiện ô tô vàng với dòng tương ứng khác rổng, chương trinh mình viết không biết sai chổ nào nó k hiển thị
mong mọi người giúp đỡ
Combobox mà chỉ hiện ra có 1 giá trị thì sao gọi là combobox ta? Bạn dùng label thì hơn
 
Upvote 0
Chào các bạn, minh có Sheet đính kèm, nhưng không biết code co sai chổ nào, để cho combobox hiển thị các giá trị của dòng đầu tiên, thỏa điều kiện ô tô vàng với dòng tương ứng khác rổng, chương trinh mình viết không biết sai chổ nào nó k hiển thị
mong mọi người giúp đỡ
Bạn nên giải thích rỏ, muốn gán cái gì từ Combo và có ví dụ cụ thể từ Cell nào? gán cái gì vào Cell nào ở trên sheet thì may ra mới có thành viên hiểu nổi.

A_Combo.JPG
 
Upvote 0
K phải ra 1 giá trị. Ra một mảng là các giá trị cột của dòng đầu tiên ( tức là những ơi màu xám trong file. Thỏa điều kiện ơi k2 và dòng chứa nó khác rổng
Theo như hàm bạn viết thì kết quả không phải 1 mảng mà chỉ duy nhất 1 giá trị mà thôi.
Cụ thể trong file của bạn, bạn muốn combobox hiện ra những giá trị nào?
 
Upvote 0
Theo như hàm bạn viết thì kết quả không phải 1 mảng mà chỉ duy nhất 1 giá trị mà thôi.
Cụ thể trong file của bạn, bạn muốn combobox hiện ra những giá trị nào?
combobox hiện ra những ô tô màu xanh trong file dinh kem, trong file này chi hiện được 1 ô , mình muốn hiện hết những ô màu xanh, khi các dòng ứng với ô K2 khasc rổng
 

File đính kèm

Upvote 0
combobox hiện ra những ô tô màu xanh trong file dinh kem, trong file này chi hiện được 1 ô , mình muốn hiện hết những ô màu xanh, khi các dòng ứng với ô K2 khasc rổng
Ý bạn là muốn làm combo phụ thuộc với mục đích gì? Bạn nên nêu rỏ cái cần, gán nó vào chổ nào của biểu mẫu nào.
Tự nhiên hỏi ngang mà không nêu cái mục đích thì làm sao hiểu nổi?
 
Upvote 0
K phải ra 1 giá trị. Ra một mảng là các giá trị cột của dòng đầu tiên ( tức là những ơi màu xám trong file. Thỏa điều kiện ơi k2 và dòng chứa nó khác rổng
Tóm lại là bạn có một hàng, trên hàng đó có vài ô tô màu, giờ muốn đưa giá trị của các ô đó vào combobox
 
Upvote 0
Tóm lại là bạn có một hàng, trên hàng đó có vài ô tô màu, giờ muốn đưa giá trị của các ô đó vào combobox
Có thể cái chủ Topic yêu cầu giống bài này (thay vì dùng Validation phụ thuộc thì lại dùng Form):
http://www.giaiphapexcel.com/dienda...ị-lỗi-khi-dùng-hàm-offset.133899/#post-848545


Có nghĩa là chọn loại gì đó (lấy từ cột A) nó sẽ hiện danh sách dữ liệu tương ứng trong các cột tô xanh và dùng nó nhập liệu tương ứng vào cột K.
 
Upvote 0
Có thể cái chủ Topic yêu cầu giống bài này (thay vì dùng Validation phụ thuộc thì lại dùng Form):
http://www.giaiphapexcel.com/dienda...ị-lỗi-khi-dùng-hàm-offset.133899/#post-848545


Có nghĩa là chọn loại gì đó (lấy từ cột A) nó sẽ hiện danh sách dữ liệu tương ứng trong các cột tô xanh và dùng nó nhập liệu tương ứng vào cột K.
Nôn nao đốt thời gian mong chọn mơ ước, nao hay đâu bạn ý có nói rõ đâu.
 
Upvote 0
combobox hiện ra những ô tô màu xanh trong file dinh kem, trong file này chi hiện được 1 ô , mình muốn hiện hết những ô màu xanh, khi các dòng ứng với ô K2 khasc rổng
Vậy bạn thay lại cái hàm listwire cũ bằng hàm này thử xem
PHP:
Function listwire(ByVal ter As String, Darr())
    Dim dic As Object, i As Long, j As Long
Set dic = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(Darr)
    If Darr(i, 1) = ter Then
        For j = 2 To UBound(Darr, 2)
            If Darr(i, j) <> Empty Then
                dic.Add Darr(1, j), ""
            End If
        Next j
    End If
Next i
listwire = dic.Keys
End Function
 
Upvote 0
Minh chua hiểu ý bạn. Nhưng minh viết chương trình tìm kiếm dữ liệu. Do phần này ảnh hưởng đen mảng và dictionary
mọi ngừoi không ai quan tâm là mảng hay dic, quan tâm là bạn đang muốn gì, ý định là gì. lập trình là cứ nước chảy bèo trôi thôi. thớt này bị kéo dài là do bạn cứ loanh quanh không nói rõ yêu cầu, toàn nói chuyện trăng sao. Khó nói thế thì dùng gạch đầu dòng
- đầu vào là gì
-lấy dữ liệu theo quy tắc gì
- xử lý xong thì nhét dữ liệu vào đâu
-một vài ví dụ về kết quả minh họa
-thà khôbg biết thì nói luôn mục đích, mọi người làm cho tất cả luôn, úp mở kiểu này sớm muộn thành công cốc
 
Upvote 0
combobox hiện ra những ô tô màu xanh trong file dinh kem, trong file này chi hiện được 1 ô , mình muốn hiện hết những ô màu xanh, khi các dòng ứng với ô K2 khasc rổng
Xóa 2 dòng:
GoTo Thoat

Thoat:
trong Function listwire là được
 
Upvote 0
mọi ngừoi không ai quan tâm là mảng hay dic, quan tâm là bạn đang muốn gì, ý định là gì. lập trình là cứ nước chảy bèo trôi thôi. thớt này bị kéo dài là do bạn cứ loanh quanh không nói rõ yêu cầu, toàn nói chuyện trăng sao. Khó nói thế thì dùng gạch đầu dòng
- đầu vào là gì
-lấy dữ liệu theo quy tắc gì
- xử lý xong thì nhét dữ liệu vào đâu
-một vài ví dụ về kết quả minh họa
-thà khôbg biết thì nói luôn mục đích, mọi người làm cho tất cả luôn, úp mở kiểu này sớm muộn thành công cốc
hì bặm mình cũng nói rỗ rồi, bạn Hoa bất tử đã code giúp đúng ý mình
 

File đính kèm

Upvote 0
Upvote 0
hì bặm mình cũng nói rỗ rồi, bạn Hoa bất tử đã code giúp đúng ý mình
Nếu tôi không nhìn nhầm thì về cơ bản ý tưởng GoTo Thoat của bạn là đúng, nhưng bạn đặt sai chỗ. Phải đặt sau Next j
Mã:
Next j
GoTo Thoat

Nhưng nếu là tôi thì tôi dùng Exit For. Tất nhiên lúc đó Thoat: không cần thiết.
Mã:
Next j
Exit For

Nếu chỉ đơn giản là xóa 2 dòng GoTo Thoat và Thoat: thì code của bạn về mặt nghệ thuật lập trình không phải chuẩn 100%. Vì nếu tôi đoán mò mà đúng thì dữ liệu trong cột A là duy nhất - khác nhau từng đôi một. Khi đã tìm thấy dòng thỏa, tức (Darr(i, 1) = ter) = TRUE thì sau khi thêm vào dic thì phải ra khỏi vòng lặp. Chả lý gì khi tìm thấy vd. ở dòng 2 (trong trường hợp này) lại thực hiện tiếp vòng lặp cho dòng i = 3, 4, ..., 50.

Tóm lại ý tưởng GoTo Thoat của bạn về mặt nghệ thuật lập trình là đúng, và chắc chắn tốt hơn những gợi ý bỏ nó. Bạn chỉ sai do đặt nhầm chỗ.

Góp ý thế vì tương lai bạn sẽ viết nhiều code nữa.
 
Upvote 0
Nếu tôi không nhìn nhầm thì về cơ bản ý tưởng GoTo Thoat của bạn là đúng, nhưng bạn đặt sai chỗ. Phải đặt sau Next j
Mã:
Next j
GoTo Thoat

Nhưng nếu là tôi thì tôi dùng Exit For. Tất nhiên lúc đó Thoat: không cần thiết.
Mã:
Next j
Exit For

Nếu chỉ đơn giản là xóa 2 dòng GoTo Thoat và Thoat: thì code của bạn về mặt nghệ thuật lập trình không phải chuẩn 100%. Vì nếu tôi đoán mò mà đúng thì dữ liệu trong cột A là duy nhất - khác nhau từng đôi một. Khi đã tìm thấy dòng thỏa, tức (Darr(i, 1) = ter) = TRUE thì sau khi thêm vào dic thì phải ra khỏi vòng lặp. Chả lý gì khi tìm thấy vd. ở dòng 2 (trong trường hợp này) lại thực hiện tiếp vòng lặp cho dòng i = 3, 4, ..., 50.

Tóm lại ý tưởng GoTo Thoat của bạn về mặt nghệ thuật lập trình là đúng, và chắc chắn tốt hơn những gợi ý bỏ nó. Bạn chỉ sai do đặt nhầm chỗ.

Góp ý thế vì tương lai bạn sẽ viết nhiều code nữa.
Dạ cái GoTo Thoat là do em thêm vào ạ. Chứ Code của bài 1 là Exit Function. Cám ơn anh nhiều ạ
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom