Help me !!! Nhờ các Anh/Chị sửa giúp em cái file với ạ: Sử dụng VDA thay hàm Vlookup

Liên hệ QC

Yugi_Nguyễn

Thành viên mới
Tham gia
23/5/19
Bài viết
32
Được thích
1
Giới tính
Nam
Chả là em mới tiếp xúc với VDA nên chưa rành cho lắm
Nhờ Anh/Chị viết giúp em cái code để thay hàm Vlookup như sau ạ:
+ Tại C14 - C43 khi em chọn tên NV thì nó trả về ID tương ứng ở Ô B14 đến B43 ( Như hàm Vlookup của em )
+ Tại E14 - E43 khi em chọn tên NV thì nó trả về ID tương ứng ở Ô F14 đến F43 và G14 đến G43 ( Như hàm Vlookup của em )
Dữ liệu lấy từ Sheet "Data"
Em cảm ơn mn ạ
Mn xem giúp em file đính kèm với ạ
 

File đính kèm

(A) Bạn lấy macro này thay thế cái đang hiện hữu trong file của bạn:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Worksheet, Rng As Range, sRng As Range
If Not Intersect(Target, Range("E14:E43")) Is Nothing Then
    Set Sh = ThisWorkbook.Worksheets("Data")
    Set Rng = Sh.Range(Sh.[F3], Sh.[H13])
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        Target.Offset(, 1).Resize(, 2).Value = sRng.Offset(, 1).Resize(, 2).Value
    End If
End If
End Sub
(B) Bạn nên sửa lại là VBA thay vì như trong tiêu đề & bài viết của bạn :D
(C) . . . . . :D
 
(A) Bạn lấy macro này thay thế cái đang hiện hữu trong file của bạn:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Worksheet, Rng As Range, sRng As Range
If Not Intersect(Target, Range("E14:E43")) Is Nothing Then
    Set Sh = ThisWorkbook.Worksheets("Data")
    Set Rng = Sh.Range(Sh.[F3], Sh.[H13])
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        Target.Offset(, 1).Resize(, 2).Value = sRng.Offset(, 1).Resize(, 2).Value
    End If
End If
End Sub
(B) Bạn nên sửa lại là VBA thay vì như trong tiêu đề & bài viết của bạn :D
(C) . . . . . :D
Vi phạm tiêu đề
Help me !!! Nhờ các Anh/Chị sửa giúp em cái file với ạ: Sử dụng VDA thay hàm Vlookup
https://www.giaiphapexcel.com/diendan/forums/những-vấn-đề-chung.3/post-thread
 
...(B) Bạn nên sửa lại là VBA thay vì như trong tiêu đề & bài viết của bạn :D
Chưa chắc ngừoi ta muốn nói VBA.
1. Thớt rất có thể làm việc trong công ty ô tô Đức.
VDA (Verband der deutschen Automobilindustrie E.V.) : tiêu chuẩn quản lý sản xuất phụ kiện
2. Hoặc công ty phần mềm Citrix
Virtual Delivery Agent : tạo môi trường ảo trên Windows
3. Hoặc kiểm soát an toàn mạng
Viewer Discretion Advised : Trang quép có thể chứa những sự kiện cấm trẻ vị thành niên
 
Chưa chắc ngừoi ta muốn nói VBA.
1. Thớt rất có thể làm việc trong công ty ô tô Đức.
VDA (Verband der deutschen Automobilindustrie E.V.) : tiêu chuẩn quản lý sản xuất phụ kiện
2. Hoặc công ty phần mềm Citrix
Virtual Delivery Agent : tạo môi trường ảo trên Windows
3. Hoặc kiểm soát an toàn mạng
Viewer Discretion Advised : Trang quép có thể chứa những sự kiện cấm trẻ vị thành niên
Mấy thứ này không thay cho hàm VLOOKUP() gì gì đó được, phải không nào?
Chỉ có thể là VBA hay 1 vài phương thức khác được dung nạp sẵn trong Excel mà thôi, chắc vậy!
 
Mấy thứ này không thay cho hàm VLOOKUP() gì gì đó được, phải không nào?
Chỉ có thể là VBA hay 1 vài phương thức khác được dung nạp sẵn trong Excel mà thôi, chắc vậy!
Chủ câu hỏi không thấy đâu, mà mọi người cứ lao xao,
Chừng nào họ giải thích VDA là gì thì mới rõ, thay vì ta phải võ đoán đại
 
Có khi đang tốn thời gian với cúm con dơi rồi cũng nên, đánh!
 
Chủ câu hỏi không thấy đâu, mà mọi người cứ lao xao,
Chừng nào họ giải thích VDA là gì thì mới rõ, thay vì ta phải võ đoán đại
Có những cái đoán mệt óc. Ví dụ đoán đề.
Nhưng cũng có những cái đoán là thú tiêu khiển. Ví dụ đoán ai sẽ tranh cử với Trump.

Đoán tiếp:
Nếu tiếng Việt thì chắc VDA là Vô Đáp Án.
 
[[/QUOTE]
(A) Bạn lấy macro này thay thế cái đang hiện hữu trong file của bạn:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Worksheet, Rng As Range, sRng As Range
If Not Intersect(Target, Range("E14:E43")) Is Nothing Then
    Set Sh = ThisWorkbook.Worksheets("Data")
    Set Rng = Sh.Range(Sh.[F3], Sh.[H13])
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        Target.Offset(, 1).Resize(, 2).Value = sRng.Offset(, 1).Resize(, 2).Value
    End If
End If
End Sub
(B) Bạn nên sửa lại là VBA thay vì như trong tiêu đề & bài viết của bạn :D
(C) . . . . . :D
Cảm ơn bác nhé

bác giúp em nốt cái mã VBA để
+ Tại C14 - C43 khi em chọn tên NV thì nó trả về ID tương ứng ở Ô B14 đến B43 ( Như hàm Vlookup của em )

em copy code kia thì đã vlookup dk
+ Tại E14 - E43 khi em chọn tên NV thì nó trả về ID tương ứng ở Ô F14 đến F43 và G14 đến G43 ( Như hàm Vlookup của em )
Em cảm ơn nhiều
 
bác giúp em nốt cái mã VBA để
+ Tại C14 - C43 khi em chọn tên NV thì nó trả về ID tương ứng ở Ô B14 đến B43 ( Như hàm Vlookup của em )

(/ậy thì bạn trước tiên sửa lại tiêu đề & cả nội dung bài viết đầu của mình cho rõ nghĩa hơn; Xin cảm ơn trước với bạn vì hành vi giúp ích cho cộng đồng!
 
Nếu bạn chưa biết cách sửa 1 tiêu đề bài viết của mình hay viết lại tiêu đề khác phù hợp thì nên hỏi ở ngăn mục "Thành viên giúp nhau".
vâng em
Nếu bạn chưa biết cách sửa 1 tiêu đề bài viết của mình hay viết lại tiêu đề khác phù hợp thì nên hỏi ở ngăn mục "Thành viên giúp nhau".
vâng em cảm ơn
 
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Worksheet, Rng As Range, sRng As Range

Set Sh = ThisWorkbook.Worksheets("Data")
If Not Intersect(Target, Range("E14:E43")) Is Nothing Then
    Set Rng = Sh.Range(Sh.[F3], Sh.[H13])
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        Target.Offset(, 1).Resize(, 2).Value = sRng.Offset(, 1).Resize(, 2).Value
    End If
ElseIf Not Intersect(Target, [C14:C43]) Is Nothing Then
    Set Rng = Sh.Range(Sh.[B3], Sh.[C19])
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        Target.Offset(, -1).Value = sRng.Offset(, 1).Value
    End If
End If
Set Sh = Nothing
End Sub
 
em không biết sửa lại tiêu đề thế nào ạ
Không biết thì hỏi Admin, smod, mod...
Vì không chỉ nói không biết là bỏ rác ở diễn đàn.

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Worksheet, Rng As Range, sRng As Range

Set Sh = ThisWorkbook.Worksheets("Data")
If Not Intersect(Target, Range("E14:E43")) Is Nothing Then
    Set Rng = Sh.Range(Sh.[F3], Sh.[H13])
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        Target.Offset(, 1).Resize(, 2).Value = sRng.Offset(, 1).Resize(, 2).Value
    End If
ElseIf Not Intersect(Target, [C14:C43]) Is Nothing Then
    Set Rng = Sh.Range(Sh.[B3], Sh.[C19])
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        Target.Offset(, -1).Value = sRng.Offset(, 1).Value
    End If
End If
Set Sh = Nothing
End Sub
Tiêu đề còn sai bác vội chi, ra giêng ngày rộng tháng dài
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom