jennythanh
Thành viên mới
- Tham gia
- 14/7/18
- Bài viết
- 3
- Được thích
- 0
Dùng công thức được không bạn? mình không biết code VBA.
mình sử dụng công thức được rồi, muốn chuyển qua code VBAdùng lookup được không bạn
Cách nào ra kết quả thì làm, sao cứ phải là Lookup()?dùng lookup được không bạn
B3=INDEX($L$3:$L$9;MATCH(C3;$M$3:$M$9;0);)
công thức thì mình đã làm được, mình làm 2 cách lookup và Index, và giờ muốn chuyển qua VBA để tiện cho chương trìnhCách nào ra kết quả thì làm, sao cứ phải là Lookup()?
Muốn Lookup() thì cột M của bạn phải sort lại A-Z.
Nếu giữ nguyên như vậythì có thể dùng công thức này:
PHP:B3=INDEX($L$3:$L$9;MATCH(C3;$M$3:$M$9;0);)
Chẳng hiểu bạn muốn tra cột nào? Trong File dựa vào Ma (cột B) để tra Internet (cột C).Chào Anh Chị
Mình muốn viết 1 Sub để tìm giá trị cho cột Ma theo bảng Nguồn bên cạnh
mong anh chị giúp đỡ
1> Cho code dưới đây vào module:Chào Anh Chị
Mình muốn viết 1 Sub để tìm giá trị cho cột Ma theo bảng Nguồn bên cạnh
mong anh chị giúp đỡ
Public dicObject As Object
Public isChanged As Boolean
Sub Main()
Dim arrSrc, key
Dim lRow As Long
If (dicObject Is Nothing) Or (isChanged = True) Then
CreateDic Sheet1.Range("M3:M1000"), Sheet1.Range("L3:L1000"), dicObject
End If
With Sheet1.Range("C3:C100")
arrSrc = .Value
ReDim arrDes(1 To UBound(arrSrc), 1 To 1)
For lRow = 1 To UBound(arrSrc, 1)
key = arrSrc(lRow, 1)
If dicObject.Exists(key) Then arrDes(lRow, 1) = dicObject.item(key)
Next
.Offset(, -1).Value = arrDes
End With
isChanged = False
End Sub
Private Sub CreateDic(ByVal rngKeys As Range, ByVal rngItems As Range, ByRef dict As Object)
Dim lRow As Long, lCol As Long
Dim arrKeys(), arrItems(), key, item
Set dict = CreateObject("Scripting.Dictionary")
If rngKeys.Count = 1 Then
ReDim arrKeys(1 To 1, 1 To 1)
ReDim arrItems(1 To 1, 1 To 1)
arrKeys(1, 1) = rngKeys.Value
arrItems(1, 1) = rngItems(1, 1).Value
Else
Set rngItems = rngItems.Resize(rngKeys.Rows.Count, rngKeys.Columns.Count)
arrKeys = rngKeys.Value
arrItems = rngItems.Value
End If
For lRow = 1 To UBound(arrKeys, 1)
For lCol = 1 To UBound(arrKeys, 2)
key = arrKeys(lRow, lCol)
item = arrItems(lRow, lCol)
If key <> Empty Then
If Not dict.Exists(key) Then dict.Add key, item
End If
Next
Next
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("L3:M1000"), Target) Is Nothing Then isChanged = True
End Sub
DIỄN ĐÀN GIẢI PHÁP EXCEL