ComboBox 2 chỉ hiện dữ liệu theo ComboBox 1 (1 người xem)

Liên hệ QC

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

NguyenthiH

Thành viên mới đăng ký
Tham gia
11/12/16
Bài viết
965
Được thích
175
Giới tính
Nữ
Chào mọi người, em có tạo Form, trong Form có 4 CombpBox.
Sao Cb_CD thì hiện các công đoạn của mã hàng được chọn trong Cb_MH, còn Cb_CN lại hiện sai tên công nhân khi chọn tổ trong Cb_TO.
Mong mọi người xem code Cb_TO_Change() có sai gì không.
Em cám ơn mọi người.
 

File đính kèm

1./ Khuyên bạn viết Code nên khai báo tường minh

2./ Nếu là mình, mình sẽ ghi vầy:
PHP:
Private Sub Cb_TO_Change()
Dim lastRow As Long, r As Long, Arr(), J As Long
Dim TTO As Variant
ReDim dArr(1 To 99, 1 To 1)
    TTO = Me!Cb_TO.Value
'    Nhap Vùng Du Lieu Vào Mang Arr()'
    With Sheet1
        lastRow = .Cells(Rows.Count, "F").End(xlUp).Row
'        Néu Không Có Du Lieu Thì Két Thúc  '
        If lastRow < 3 Then Exit Sub
        Arr = .Range("F4:G" & lastRow).Value
    End With
    For r = 1 To UBound(Arr)
'        neu  MH hien hanh la MH trong Cb_MH thi thao tac tiep  '
        If Arr(r, 2) = TTO Then
            J = J + 1
            dArr(J, 1) = Arr(r, 1)
        End If
    Next
    If J Then Cb_CN.List = dArr()
End Sub
 
Upvote 0
Hôm qua Anh ChanhTQ@ đi tới gần 1 giờ sáng, mà còn vào DD sớm thế!!!
Cũng không được Anh ChanhTQ@ ơi, Khi em chọn tổ 1 trong Cb_TO thì trong comboBox chỉ hiện có 5 công nhân, trong khi đó tổ 1 có tới 15 công nhân.
Mong các Anh chỉ giáo.
 
Lần chỉnh sửa cuối:
Upvote 0
Cũng không được Anh ChanhTQ@ ơi, Khi em chọn tổ 1 trong Cb_TO thì trong comboBox chỉ hiện có 5 công nhân, trong khi đó tổ 1 có tới 15 công nhân.
Mong các Anh chỉ giáo.
???
Bạn thử kiểm tra lại xem cac thông số kỹ thuật của macro đó xem sao:
Thứ nhất: Kiểm trị trong biến LastRow
Thừ hai: Kiểm trị trong biến J trước khi nạp vô ComboBox
. . . . .

Nếu hết mọi cách thì nên xoay qua thực hiện theo cách chân fương nhất: Lấy vùng ô nào đó bỏ gán tên cho nó & bỏ dữ liệu tìm được vô đó để làm nguồn cho ComboBox TênNV
 
Upvote 0
Bạn thay

If Arr(r, 2) = TTO Then

Thành

If CStr(Arr(r, 2)) = TTO Then
 
Upvote 0
Cám ơn Anh ptm0412 nhiều, được rồi ah. Nhưng cho em hỏi tý:
Sao code Cb_MH_Change lại đúng, mà code Cb_TO_Change lúc đầu lại sai.
Dùng Dic để lọc bị gì chăng???
Mong các Anh giải thích dùm.
 
Upvote 0
Cám ơn Anh ptm0412 nhiều, được rồi ah. Nhưng cho em hỏi tý:
Sao code Cb_MH_Change lại đúng, mà code Cb_TO_Change lúc đầu lại sai.
Dùng Dic để lọc bị gì chăng???
Mong các Anh giải thích dùm.

Nếu bạn biết CStr để làm gì thì sẽ hiểu ngay vấn đề.

Trên Userform, bất kỳ giá trị nào trên textbox, combobox khi lấy ra đều thuộc dạng text, trong khi tổ của bạn mang giá trị số, so sánh không thể bằng nhau

Vậy dùng CStr để chuyển 1 thành text để so sánh

Còn Mã hàng đúng vì có giá trị số nào đâu?
 
Upvote 0
Tức là Dic chỉ để lọc Chuỗi hả Anh?
Còn CStr là chuyễn về Chuỗi(String)'
Cám Ơn Anh ptm0412.
 
Upvote 0
Web KT

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

Back
Top Bottom