Xin được giúp đỡ: Hàm Vlookup trả về nhiều giá trị

Liên hệ QC
Bạn fải nhập vô cột [c:c] của trang 'CTiet' 1 trong những mã có trong cột [B:b] của trang còn lại
Nếu nhập ngoài danh sách thì nó báo không tìm thấy là fải rồi!

Còn muốn nhớ, những mã công dụng để nhập cho có thì thử vài cách, trong đó có cách tạo 1 ô Validation đâu đó trên trang tính để nhớ thôi.
Còn về căn cơ thì mã công dụng cần đầu tư nghiêm cứu thêm để dễ nhớ cho người sử dụng.
 
Lần chỉnh sửa cuối:
Bạn fải nhập vô cột [c:c] của trang 'CTiet' 1 trong những mã có trong cột [B:b] của trang còn lại
Nếu nhập ngoài danh sách thì nó báo kgo6ng tìm thấy là fải rồi!
Dạ vâng!
Cháu đã làm được rồi, tại vì cháu cứ nhập mã hiệu ở ô [A,a].
Ngốc quá, lẽ ra phải nghĩ đến cột [B,b] rồi mới đúng.
Bác cho cháu hỏi thêm 4 vấn đề nữa ạ:
1. Cháu muốn tìm hiểu qua về Code ( chỉ học đủ để chỉnh sửa khi xin được code ) thì nên dùng tài liệu nào dễ hiểu cho một người mới như cháu ạ ?
2. Hiện tại nếu cháu bổ xung thêm 1 cột ở 'DuLieu' thì giá trị ở 'CTiet' sẽ dịch đi 3 cột. Vậy bây giờ cháu vẫn muốn bổ xung thêm 1 cột ở 'DuLieu' nhưng giá trị ở 'CTiet' sẽ không bị dịch đi mà chỉ xuất hiện ở bên cạnh tham chiếu tương ứng. Thì nên thay đổi thế nào trong Code ạ.
3. Hiện tại bên 'DuLieu' đang chỉ có một cột mã hiệu là [B,b] tương ứng với [C,c] ở bên 'CTiet'. Vậy bây giờ cháu muốn bổ xung thêm 1 cột mã hiệu bên 'DuLieu' ( cột [A,A] chẳng hạn ) và 1 cột tương ứng với bên 'CTiet'. Thì nên thay đổi Code ntn ạ?
4. Hiện tại cháu biết tạo code đơn giản bằng cách cho chạy ghi chép lại lệnh trong file cell, nhưng khi cho chạy code thì cả lệnh cũng hiện lên. Bác cho cháu hỏi làm thế nào để xóa lệnh đi, mà chỉ hiện lên giá tị thực giống như gõ tay ạ ( cháu thử dùng paste special nhưng như thế sẽ không chạy được marco )
Cháu cám ơn bác nhiều.
 
Lần chỉnh sửa cuối:
1.
2. Hiện tại nếu cháu bổ xung thêm 1 cột ở 'DuLieu' thì giá trị ở 'CTiet' sẽ dịch đi 3 cột. Vậy bây giờ cháu vẫn muốn bổ xung thêm 1 cột ở 'DuLieu' nhưng giá trị ở 'CTiet' sẽ không bị dịch đi mà chỉ xuất hiện ở bên cạnh tham chiếu tương ứng. Thì nên thay đổi thế nào trong Code ạ.
3. Hiện tại bên 'DuLieu' đang chỉ có một cột mã hiệu là [B,b] tương ứng với [C,c] ở bên 'CTiet'. Vậy bây giờ cháu muốn bổ xung thêm 1 cột mã hiệu bên 'DuLieu' ( cột [A,A] chẳng hạn ) và 1 cột tương ứng với bên 'CTiet'. Thì nên thay đổi Code ntn ạ?
1./ Tìm quyễn cơ bản (cơ sở) về VBA đã fát hành trên diễn đàn
2./ Bạn cần nói rõ là thêm 1 cột vô trước hay ngay sau cột có tiêu đề là 'Công Dụng'?
& chuyện này được nhiên fải chỉnh các thông số chứa trong các tham biến.
3./. . . & 1 cột tương ứng bên 'CTiet' là cột ở vị trí nào.
 
.
 
Lần chỉnh sửa cuối:
1./ Tìm quyễn cơ bản (cơ sở) về VBA đã fát hành trên diễn đàn
2./ Bạn cần nói rõ là thêm 1 cột vô trước hay ngay sau cột có tiêu đề là 'Công Dụng'?
& chuyện này được nhiên fải chỉnh các thông số chứa trong các tham biến.
3./. . . & 1 cột tương ứng bên 'CTiet' là cột ở vị trí nào.
Dạ Cháu sửa luôn trên file cell cho dễ hiểu ạ.
1. Cháu đã bổ xung thêm cột, và tạo thêm 1 cột mã mới ( cũ 1 nữa => tổng là 2 => cần thêm một CODE nữa trong cùng sheet )
2. Các cột màu vàng là các cột liên hệ với nhau bằng CODE riêng ạ.
Cháu cám ơn nhiều ạ.
 

File đính kèm

Bạn viết vậy chắc chỉ có mình bạn hiểu mà thôi!

Bạn cần ghi rằng, khi nhập cái gì vô cột nào (C hay D hay cả hai) của trang 'CTiet' thì cột nào của trang 'CTiet' này sẽ fải lấy số liệu từ cột nào của trang tính còn lại kia;
 
Mình thấy bài này rất hay, để mình thử viết hàm xem sao rồi lên báo bạn
 
Bạn viết vậy chắc chỉ có mình bạn hiểu mà thôi!

Bạn cần ghi rằng, khi nhập cái gì vô cột nào (C hay D hay cả hai) của trang 'CTiet' thì cột nào của trang 'CTiet' này sẽ fải lấy số liệu từ cột nào của trang tính còn lại kia;
Mình xin nhận góp ý của bạn.
Mình xin được bổ xung thông tin vào sheet ghichu trong file mới này ( giống hệt file trước, chỉ thêm ghi chú )
Cám ơn bạn nhiều.
 

File đính kèm

Bạn xem file cuối này nha & chúc vui suốt ngày!
 

File đính kèm

Những cột mà bạn bôi vàng đó có số liệu đâu mà mần & kiểm tra tính đúng đắn;

Sẵn đây nhắc bạn luôn:
(*) Không ai bôi màu toàn 1 cột như trong file của bạn; Điều này sẽ tốn bộ nhớ & chứng tỏ bạn vô trách nhiêm với dữ liệu của mình.
(*) Xem lại trang tính 'Ghi Chu' cái cách mà người khác mô tả công viêc.
Nên mô ta sao để người khác hiểu, chứ không fải mô tả những cái mình hiểu.
 
Những cột mà bạn bôi vàng đó có số liệu đâu mà mần & kiểm tra tính đúng đắn;

Sẵn đây nhắc bạn luôn:
(*) Không ai bôi màu toàn 1 cột như trong file của bạn; Điều này sẽ tốn bộ nhớ & chứng tỏ bạn vô trách nhiêm với dữ liệu của mình.
(*) Xem lại trang tính 'Ghi Chu' cái cách mà người khác mô tả công viêc.
Nên mô ta sao để người khác hiểu, chứ không fải mô tả những cái mình hiểu.
Dạ vâng, mình xin nhận góp ý của bạn.
Cái cột màu vàng mình sơ xuất không không điền dữ liệu vào, mình xin được gửi lại.
Cái phần mô tả ý, không phải do mình làm ẩu đâu ạ. Do là mình có vấn đề về cách diễn đạt trong mọi thứ ( như kiểu khả năng truyền đạt kém ấy ), điều này mình cũng đang sửa đổi chính mình.
Cám ơn bạn đã góp ý. :)
-* Những cột bôi vàng có liên hệ với nhau khép kín, không liên quan đến những cột còn lại ( có thể dùng một mã code 2 khác độc lập với mã code 1đã có )*-
 

File đính kèm

Bạn copy cái này đè lên toạn bộ cái cũ mà xài nè:
PHP:
Const Rw As Long = 9999
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Rws As Long, Dg As Long, Hg As Long, Col As Byte
 Dim Sh As Worksheet, Rng As Range, sRng As Range, Cls As Range, Rg0 As Range

 Rws = Rw + 99
 Set Sh = ThisWorkbook.Worksheets("DuLieu")             '*'
 Dg = Sh.[G9999].End(xlUp).Offset(9).Row                'Dòng Cuói Có Du Liêu  '
 If Not Intersect(Target, Range("C19:C" & Rws)) Is Nothing Then
    Set Rng = Sh.[B2].Resize(Dg)
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If sRng Is Nothing Then
        MsgBox "Nothing", , "GPE.COM Xin Chào!"
    Else
        If sRng.Offset(1).Value <> "" Then
            Cells(Target.Row, "T").Value = Sh.Cells(sRng.Row, "G").Value
            For Col = 9 To 11   '*'
                Cells(Target.Row, 3 * Col - 3).Value = Sh.Cells(sRng.Row, Col).Value
            Next Col
        Else
            Hg = sRng.End(xlDown).Row - sRng.Row        'Xác Dinh Só Dòng Tróng  '
            If Hg > 9 Then Hg = 9
            Cells(Target.Row, "T").Resize(9).ClearContents
            Cells(Target.Row, "T").Resize(Hg).Value = Sh.Cells(sRng.Row, "G").Resize(Hg).Value
            For Col = 9 To 11
                Cells(Target.Row, 3 * Col - 3).Resize(9).ClearContents
                Cells(Target.Row, 3 * Col - 3).Resize(Hg).Value = _
                    Sh.Cells(sRng.Row, Col).Resize(Hg).Value
            Next Col
        End If
    End If
 ElseIf Not Intersect(Target, Range("d19:d" & Rws)) Is Nothing Then
    Set Rng = Sh.[C2].Resize(Dg)
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If sRng Is Nothing Then
        MsgBox "Nothing", , "GPE.COM Xin Chào!"
    Else
        Hg = Target.Row
        Cells(Hg, "L").Value = sRng.Offset(, 1).Value
        Cells(Hg, "O").Value = sRng.Offset(, 2).Value
        Cells(Hg, "Q").Value = sRng.Offset(, 3).Value
    End If
 Else
    Set Sh = Nothing
 End If
End Sub
 
Bạn copy cái này đè lên toạn bộ cái cũ mà xài nè:
Mình cám ơn bạn nhiều.
Còn sót dữ liệu tại cột H màu vàng sheet 'DuLieu' chưa được chuyển sang cột V màu vàng sheet 'CTiet".
Bạn bổ xung giúp mình nốt cột này ạ.
Lần nữa cám ơn bạn.
 
Web KT

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

Back
Top Bottom