tiendo1988
Thành viên chính thức


- Tham gia
- 6/8/09
- Bài viết
- 82
- Được thích
- 11
Trợ giúp CODE VBA để thay thế cho hàm Vlookup
1. Nhờ AE GPE chỉ giúp CODE VBA để thay thế cho hàm VLookup.
2. Mình dựa trên đoạn code VBA của anh Trần Văn Hoành (sử dụng trong chương trình quản lý nhân sự mã nguồn mở bằng VBA). sau khi xem đoạn code thì em nghĩ rằng mục đích của đoạn code là để thay thế cho việc sử dụng hàm "Vlookup" trên bảng tính và đã sửa để cho phù hợp với yêu cầu của minh:
Song kiến thức về VBA của mình còn quá yếu nên không biết sửa sao cho doạn code này nó chạy được.
Rất mong sự giúp đỡ của Các Pro trên GPE:
- chỉ cho em đoạn code để có thể thay thế hàm Vlookup trên bảng tính.
- Pro nào hiểu được ý tưởng trong đoạn code trên thì giúp em hoàn thiện đoạn code đó.
Mong các Pro trên GPE dành chút thời gian giúp đỡ!
Chân thành cảm ơn!
1. Nhờ AE GPE chỉ giúp CODE VBA để thay thế cho hàm VLookup.
2. Mình dựa trên đoạn code VBA của anh Trần Văn Hoành (sử dụng trong chương trình quản lý nhân sự mã nguồn mở bằng VBA). sau khi xem đoạn code thì em nghĩ rằng mục đích của đoạn code là để thay thế cho việc sử dụng hàm "Vlookup" trên bảng tính và đã sửa để cho phù hợp với yêu cầu của minh:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
k = 1
i = Cells(Rows.Count, 2).End(xlUp).Row
If Target.Column = 2 Then
j = Target.Row
If j < 12000 And j > 5 Then
m = Target.Value
Select Case Target.Value
Case ""
Range("C" & j & ":D" & j & ":E" & j & ":F" & j & ":G" & j & ":H" & j & ":I" & j & ":J" & j & ":K" & j & ":L" & j & ":M" & j & ":N" & j & ":O" & j & ":P" & j & ":Q" & j & ":R" & j).ClearContents
Range("S" & j & ":T" & j & ":U" & j & ":V" & j & ":W" & j & ":X" & j).ClearContents
Application.EnableEvents = False
Range("A6:A65000").ClearContents
If Not Intersect(Range("A6:B65000"), Target) Is Nothing Then
For j = 6 To i
If Cells(j, 2) <> "" Then
Cells(j, 1) = k
k = k + 1
End If
Next
End If
Application.EnableEvents = True
Case Is <> ""
Range("D" & j).Value = Application.WorksheetFunction.VLookup(m, LLNV.Range("NVArray"), 2, 0)
Range("E" & j).Value = Application.WorksheetFunction.VLookup(m, LLNV.Range("NVArray"), 3, 0)
Range("G" & j).Value = Application.WorksheetFunction.VLookup(m, LLNV.Range("NVArray"), 5, 0)
Range("H" & j).Value = Application.WorksheetFunction.VLookup(m, LLNV.Range("NVArray"), 6, 0)
Range("I" & j).Value = Application.WorksheetFunction.VLookup(m, LLNV.Range("NVArray"), 14, 0)
Range("K" & j).Value = Application.WorksheetFunction.VLookup(m, LLNV.Range("NVArray"), 7, 0)
Range("L" & j).Value = Application.WorksheetFunction.VLookup(m, LLNV.Range("NVArray"), 8, 0)
Range("M" & j).Value = Application.WorksheetFunction.VLookup(m, LLNV.Range("NVArray"), 11, 0)
Range("N" & j).Value = Application.WorksheetFunction.VLookup(m, LLNV.Range("NVArray"), 15, 0)
Range("O" & j).Value = Application.WorksheetFunction.VLookup(m, LLNV.Range("NVArray"), 4, 0)
Application.EnableEvents = False
Range("A6:A65000").ClearContents
If Not Intersect(Range("A6:B65000"), Target) Is Nothing Then
For j = 6 To i
If Cells(j, 2) <> "" Then
Cells(j, 1) = k
k = k + 1
End If
Next
End If
Application.EnableEvents = True
End Select
Range("B6:A12000").EntireRow.Hidden = False
Range("B" & Range("B65000").End(xlUp).Row + 1 & ":B12000").EntireRow.Hidden = False
Range("B" & j).Select
End If
End If
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
End Sub
Rất mong sự giúp đỡ của Các Pro trên GPE:
- chỉ cho em đoạn code để có thể thay thế hàm Vlookup trên bảng tính.
- Pro nào hiểu được ý tưởng trong đoạn code trên thì giúp em hoàn thiện đoạn code đó.
Mong các Pro trên GPE dành chút thời gian giúp đỡ!
Chân thành cảm ơn!
File đính kèm
Lần chỉnh sửa cuối: