phuong1604
Thành viên thường trực
- Tham gia
- 10/12/08
- Bài viết
- 275
- Được thích
- 1,037
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [h3]) Is Nothing Then
Dim Rng As Range, sRng As Range
Dim MyAdd As String
Range([i3], [i65500].End(xlUp)).Clear
Set Rng = Range([A2], [A65500].End(xlUp))
Set sRng = Rng.Find(Target.Value & "", , xlFormulas, xlPart)
If Not sRng Is Nothing Then
MyAdd = sRng.Address
Do
If InStr(sRng.Value, Target.Value) = 1 Then _
[i65500].End(xlUp).Offset(1).Value = sRng.Offset(, 1).Value
Set sRng = Rng.FindNext(sRng)
Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
End If
End If
End Sub
Nếu như bạn format cột Mã hàng thành dang Text thì bài toán này giải quyết rất dể dàng ---> Dùng AutoFilter\Custom, với điều kiện begins with = cái gì đóChào các anh, các chị !
Em muốn dùng công thức để tìm các kết quả. Tựa như hàm Vlookup hay Hlookup, nhưng ở đây là sẽ tìm ra được nhiều kết quả nếu các kết quả đó phù hợp.
Ví dụ cụ thể theo file đính kèm
Cảm ơn các anh, các chị
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$3" Then
Range("I3:I1000").ClearContents
With Range("A3").CurrentRegion
.AutoFilter 1, Target.Text & "*"
.Offset(1, 1).Resize(, 1).SpecialCells(12).Copy
Range("I3").PasteSpecial 3: .AutoFilter
End With
End If
End Sub