Các câu hỏi về hàm dò tìm dữ liệu (Lookup, Vlookup, Hlookup...)

Liên hệ QC

Closed poll

  • 1

    Votes: 1 100.0%
  • 2

    Votes: 0 0.0%

  • Total voters
    1
  • Poll closed .
Status
Không mở trả lời sau này.
Đành chờ tác giả Topic vậy! Cũng mong bạn không sai!

Rất có thể cách hiểu khác nhau. Hàm của mình có cơ chế tìm như sau: Tìm trong vùng TC kể cả nội dung của ô hay comment nếu thỏa mãn trả về giá trị ô chỉ định. Như bạn viết rất có thể bạn muốn lấy Comment thì phải? Nếu truy xuất kiểu đó thì phải xác định kết quả để riêng hay trộn lẫn, vì rất có thể kết quả có cả giá trị có cả comment.

Mình bổ sung thêm phần gán trị của hàm VLOOKUP() trong excel cho đủ lễ bộ đây

PHP:
Option Explicit
Function LookUpComm(LookUpValue, LookUpRegion As Range, Col As Byte)
 Dim Clls As Range, Rng As Range:         Dim Comm
 On Error GoTo LoiLookup
 Set Rng = LookUpRegion.Cells(1, 1).Resize(LookUpRegion.Rows.Count)
 For Each Clls In Rng
   If Clls.Value = LookUpValue Then
      With Clls.Offset(, Col)                      'xlCellTypeComments '
         If Intersect(.Offset(), Cells.SpecialCells(-4144)) Is Nothing Then
            LookUpComm = .Value
         Else
            Comm = .Comment.Text
            LookUpComm = .Value & " " & Comm
         End If
      End With
   End If
 Next Clls
ErrLookUp:           Exit Function
LoiLookup:
   LookUpComm = Application.WorksheetFunction.VLookup(LookUpValue, LookUpRegion, 1 + Col, 0)
   Resume ErrLookUp
End Function

(Xin nhắc lại: Hàm tự tạo này sẽ trả về giá trị trong ô tìm thấy thỏa điều kiện & nối thêm đoạn ghi chú nếu ô đó có ghi chú (Comments)

Tất nhiên, nếu cần tách hai phần giá trị & phần Comment thì phải thêm vài từ nữa vô câu lệnh.

Thân ái!
 
Mình thêm hàm look1() các bạn cho ý kiến nhé. (Nếu kết quả có comment thì ô hàm trả về cũng có comment)
=Look1(VungTK,TC,cot,dc)
-VungTK: Vùng dò tìm
-TC: Tiêu chuẩn tìm
-Cột lấy dữ liệu.
-dc: Địa chỉ ô đặt hàm này.

Mã:
Public Function look1(vung As Range, tc, cot, dc As Range)
Dim rg As Range
Dim c As Comment
    Application.Volatile
    Set rg = vung.Find(tc, LookIn:=xlValues, LookAt:=xlWhole)
        If Not rg Is Nothing Then
        look1 = rg.Offset(, cot)
        Else
    look1 = "None"
    Exit Function
        End If
        Set c = dc.Comment
           If Not c Is Nothing Then c.Delete
        Set c = rg.Offset(, cot).Comment
           If Not c Is Nothing Then dc.AddComment c.Text
End Function
 

File đính kèm

  • Vi du ham Look1.xls
    35 KB · Đọc: 62
Lần chỉnh sửa cuối:
Mình thêm hàm look1() các bạn cho ý kiến nhé. (Nếu kết quả có comment thì ô hàm trả về cũng có comment)
=Look1(VungTK,TC,cot,dc)
-VungTK: Vùng dò tìm
-TC: Tiêu chuẩn tìm
-Cột lấy dữ liệu.
-dc: Địa chỉ ô đặt hàm này.

Mã:
Public Function look1(vung As Range, tc, cot, dc As Range)
Dim rg As Range
Dim c As Comment
    Application.Volatile
    Set rg = vung.Find(tc, LookIn:=xlValues, LookAt:=xlWhole)
        If Not rg Is Nothing Then
        look1 = rg.Offset(, cot)
        Else
    look1 = "None"
    Exit Function
        End If
        Set c = dc.Comment
           If Not c Is Nothing Then c.Delete
        Set c = rg.Offset(, cot).Comment
           If Not c Is Nothing Then dc.AddComment c.Text
End Function
Anh Sealand làm hàm này rất hay, nhưng có 1 điểm hơi khó chịu, đó là phải thêm biến dc vào (em vẩn đang bó tay chổ này) ---> Không biết "nói" thế nào cho Excel hiểu là "Tôi đang nói đến cell mà tôi đang gõ công thức"
Add Comment sang 1 cell khác là điều quá dể... Hic...
Em đang liên tưởng tới việc Add Comment thông qua UDF ở bài này:
http://www.giaiphapexcel.com/forum/showthread.php?t=22707
 
To Ndu: Nếu là Sub thì khỏi nói nhưng hàm thì mình hơi quẩn chưa tìm ra cách nên đành phải khai thêm vậy,rồi đưa lên mong sẽ có ý kiến mọi người chắc sẽ hay hơn.
Trong bài Ndu giới thiệu cũng cho thấy đây là vấn đề không đơn giản, dám mạo muội bắt UDF thay đổi sheet trong khi nó còn là chuyện chưa ngã ngũ của các cao thủ.

Giờ mình sửa thành hàm Look2(VungTK,TC,cot) (Cái đoạn tìm kiếm thì mình tạm vậy, ai có code hay hơn thì bổ xung giùm)
(Ndu à, giải pháp ở từ khóa Thiscell và mình cũng chứng minh Anh Tuan có lý cho rằng UDF không những trả về kết quả mà còn làm thay đổi bảng tính)
Mã:
Public Function look2(vung As Range, tc, cot)
Dim rg As Range
Dim c As Comment
    Application.Volatile
    Set rg = vung.Find(tc, LookIn:=xlValues, LookAt:=xlWhole)
        If Not rg Is Nothing Then
        look2 = rg.Offset(, cot)
        Else
    look2 = "None"
    Exit Function
        End If
        Set c = Application.ThisCell.Comment
           If Not c Is Nothing Then c.Delete
        Set c = rg.Offset(, cot).Comment
           If Not c Is Nothing Then Application.ThisCell.AddComment c.Text
       End Function
 

File đính kèm

  • Vi du ham Look2.xls
    45.5 KB · Đọc: 28
Lần chỉnh sửa cuối:
To Ndu: Nếu là Sub thì khỏi nói nhưng hàm thì mình hơi quẩn chưa tìm ra cách nên đành phải khai thêm vậy,rồi đưa lên mong sẽ có ý kiến mọi người chắc sẽ hay hơn.
Trong bài Ndu giới thiệu cũng cho thấy đây là vấn đề không đơn giản, dám mạo muội bắt UDF thay đổi sheet trong khi nó còn là chuyện chưa ngã ngũ của các cao thủ.

Giờ mình sửa thành hàm Look2(VungTK,TC,cot) (Cái đoạn tìm kiếm thì mình tạm vậy, ai có code hay hơn thì bổ xung giùm)
(Ndu à, giải pháp ở từ khóa Thiscell và mình cũng chứng minh Anh Tuan có lý cho rằng UDF không những trả về kết quả mà còn làm thay đổi bảng tính)
Mã:
Public Function look2(vung As Range, tc, cot)
Dim rg As Range
Dim c As Comment
    Application.Volatile
    Set rg = vung.Find(tc, LookIn:=xlValues, LookAt:=xlWhole)
        If Not rg Is Nothing Then
        look2 = rg.Offset(, cot)
        Else
    look2 = "None"
    Exit Function
        End If
        Set c = Application.ThisCell.Comment
           If Not c Is Nothing Then c.Delete
        Set c = rg.Offset(, cot).Comment
           If Not c Is Nothing Then Application.ThisCell.AddComment c.Text
       End Function
Quá tuyệt... cứ lẩn quẩn mà không hề biết rằng có cái "ThisCell" này...
Cảm ơn anh Sealand... Chỉ cần vậy, mọi chuyện còn lại là quá dể
Ẹc... Ẹc...
 
--=0Mình rất cảm ơn các bác đã nghiên cứu giúp mình%#^#$, nhưng mình chỉ vừa tìm hiểu về excel gần đây nên chưa hiểu nhiều về macro. Mình xin nói cụ thể hơn về vấn đề đang mắc phải: Trong sheet2 mình có một danh sách gồm tên, giới tính, địa chỉ, số điện thoại và hình của các bạn trong lớp mình, hình này mình đã đưa vào comment ở dạng nền của comment (như các bác đã nói ở những topic trước - fill effect...). Ở sheet1 mình đặt một thanh tiêu đề cũng gồm tên, giới tính, địa chỉ, số điện thoại và hình như tiêu đề trong sheet2, ở row bên dưới thanh tiêu đề này mình dùng lệnh vlookup cho từng ô tương ứng để tìm dữ liệu từ sheet2 (từ khóa là tên các bạn trong danh sách mà mình sẽ nhập vào 1 ô ($A$1)), khi đó nếu mình nhập tên ví dụ tên An thì trong các ô tên, giới tính, địa chỉ, số điện thoại và hình cũng sẽ ra kết quả của bạn An tương ứng trong sheet2. Các hàm vlookup vẫn ra kết quả đúng, nhưng chỉ có phần hình là không ra được vì hình mình đưa vào comment ở dạng hình nền (fill effect). +-+-+-++-+-+-++-+-+-++-+-+-++-+-+-++-+-+-++-+-+-+Vậy xin các bác giúp mình làm sao để khi mình đánh tên của bạn An thì ở ô hình cũng xuất hiện comment (mỗi khi draw chuột đến) là hình nền của bạn An tương ứng. Rất mong sự giúp đỡ của các bác. Cảm ơn các bác đã đọc topic của mình.
 
Để giải quyết yêu cầu của Topic bằng sub thì không khó, cái khó là tạo hàm thôi.
Hiện mình đang loay hoay lấy Path & Name của hình trên Comment gốc. Nếu gỡ được thì yêu cầu của Topic sử lý bằng hàm OK
 
Lần chỉnh sửa cuối:
Ví dụ ở trang tính 'S0' có các trường sau:
A|B|C|D|E
TT | Ma | HoTen | NSinh | Picture
01|A001|Nguyen Van Minh|1957|H1
02|A017|Nguyen Viet Hong|1948|H2
03|A005|Le Thi Thom|1974|H7
04|B001|Trinh Luong Phong|1956|H4
05|A081|Ha Cuong Quyet|1953|H9
. .|. . .|. . .:-= |}}}}} |--=0
(Mà tại cột 'E', bắt đầu từ 'E2' chứa hình ảnh của đương sự)

Tại trang tính 'S1' ta có các trường sau:
A|B|C|D|E
| Ma | HoTen | NSinh | Picture
[A2]||||

Tại ô [A2] của 'S1' ta lập danh sách đổ xuống nhờ CF để chọn mã nhân viên theo danh sách có bên 'S0'

Ta phải chuột vô thanh SheetName của 'S1', & chọn dòng cuối để mở cửa sổ VBE;

Bạn Copy & dán macro này vô CS vừa xuất hiện:

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [A2]) Is Nothing Then
   Dim Sh As Worksheet, Rng As Range, sRng As Range
 
   Set Sh = Sheets("S0"):        Set Rng = Sh.Range(Sh.[b1], Sh.[b1].End(xlDown))
   Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
   If Not sRng Is Nothing Then
      With Target.Offset(, 4)
         .Offset(, -2).Value = sRng.Offset(, 1).Value
         .Offset(, -1).Value = sRng.Offset(, 2).Value
         sRng.Offset(, 3).Copy Destination:=.Offset()
      End With
   End If
 End If
End Sub


Vận hành: Chọn 1 mã trong [A2] sẽ có đủ thông tin về người có mã số như vậy!


Chúc bạn thành công :-= --=0 :-=
 
Tạm thời giải quyết câu hỏi của dophuhao
 

File đính kèm

  • Comment.rar
    93 KB · Đọc: 71
To Ndu: Nếu là Sub thì khỏi nói nhưng hàm thì mình hơi quẩn chưa tìm ra cách nên đành phải khai thêm vậy,rồi đưa lên mong sẽ có ý kiến mọi người chắc sẽ hay hơn.
Trong bài Ndu giới thiệu cũng cho thấy đây là vấn đề không đơn giản, dám mạo muội bắt UDF thay đổi sheet trong khi nó còn là chuyện chưa ngã ngũ của các cao thủ.

Giờ mình sửa thành hàm Look2(VungTK,TC,cot) (Cái đoạn tìm kiếm thì mình tạm vậy, ai có code hay hơn thì bổ xung giùm)
(Ndu à, giải pháp ở từ khóa Thiscell và mình cũng chứng minh Anh Tuan có lý cho rằng UDF không những trả về kết quả mà còn làm thay đổi bảng tính)
Mã:
[COLOR=black]Public Function look2(vung As Range, tc, cot)[/COLOR]
[COLOR=black]Dim rg As Range[/COLOR]
[COLOR=black]Dim c As Comment[/COLOR]
[COLOR=black]  Application.Volatile[/COLOR]
[COLOR=black]  Set rg = vung.Find(tc, LookIn:=xlValues, LookAt:=xlWhole)[/COLOR]
[COLOR=black]      If Not rg Is Nothing Then[/COLOR]
[COLOR=black]      look2 = rg.Offset(, cot)[/COLOR]
[COLOR=black]      Else[/COLOR]
[COLOR=black]  look2 = "None"[/COLOR]
[COLOR=black]  Exit Function[/COLOR]
[COLOR=black]      End If[/COLOR]
[COLOR=black]      Set c = Application.ThisCell.Comment[/COLOR]
[COLOR=black]         If Not c Is Nothing Then c.Delete[/COLOR]
[COLOR=black]      Set c = rg.Offset(, cot).Comment[/COLOR]
[COLOR=black]         If Not c Is Nothing Then Application.ThisCell.AddComment c.Text[/COLOR]
[COLOR=black]     End Function[/COLOR]
Em nghĩ anh dùng Find trong UDF này coi chừng không ổn... anh có thể xem bài này:
http://www.giaiphapexcel.com/forum/showthread.php?t=7146&page=12
Đố vui bài số #116
Vấn đề ở đây là nếu có 2 dử liệu trùng nhau, mà dử liệu trùng thứ nhất nằm tại cell đầu tiên của bảng dò thì Find sẽ lấy kết quả cell thứ 2
Theo em thì nên vầy:
PHP:
Function ComLookup(Tritim, Vungtim As Range, Cot As Long)
  With Application
    .Volatile
    If Not .ThisCell.Comment Is Nothing Then .ThisCell.Comment.Delete
    ComLookup = .VLookup(Tritim, Vungtim, Cot, 0)
    With Vungtim(.Match(Tritim, Vungtim.Resize(, 1), 0), Cot)
      If Not .Comment Is Nothing Then
        Application.ThisCell.AddComment .Comment.Text
      End If
    End With
  End With
End Function
Việc lổi xuất hiện khi hàm không tìm thấy ta cứ để nguyên (như hàm VLOOPUP của Excel vẩn làm thế)
 

File đính kèm

  • ComLookup.xls
    27.5 KB · Đọc: 23
Em nghĩ anh dùng Find trong UDF này coi chừng không ổn... anh có thể xem bài này:
http://www.giaiphapexcel.com/forum/showthread.php?t=7146&page=12
Đố vui bài số #116
Vấn đề ở đây là nếu có 2 dử liệu trùng nhau, mà dử liệu trùng thứ nhất nằm tại cell đầu tiên của bảng dò thì Find sẽ lấy kết quả cell thứ 2
Theo em thì nên vầy:
PHP:
Public Function look2(vung As Range, tc, cot)
Dim rg As Range
Dim c As Comment
  Application.Volatile
  Set rg = vung.Find(tc, LookIn:=xlValues, LookAt:=xlWhole)
      If Not rg Is Nothing Then
      look2 = rg.Offset(, cot)
      Else
  look2 = "None"
  Exit Function
      End If
      Set c = Application.ThisCell.Comment
         If Not c Is Nothing Then c.Delete
      Set c = rg.Offset(, cot).Comment
         If Not c Is Nothing Then Application.ThisCell.AddComment c.Text
     End Function
Việc lổi xuất hiện khi hàm không tìm thấy ta cứ để nguyên (như hàm VLOOPUP của Excel vẩn làm thế)

có cách nào dùng lệnh Find mà láy được 2 giá trị không anh
 
To AnhTuan:
Đúng là dùng Find dễ xảy ra chuyện nếu mã lồng nhau (Mã trùng thì khỏi nói ) Ví dụ MS10 và MS100

Như mình đã nói, tạm thời sd vậy, cái cần là tìm giải pháp thôi còn khi hoàn thiện thì có thể dùng Filter để lọc bớt dữ liệu sau đó dùng For như Topic "Tạo hiệu ứng cho Form" của AnhTuan có đề cập đó thì chắc ăn hơn.
 
có cách nào dùng lệnh Find mà láy được 2 giá trị không anh
Ý bạn là sao nhỉ? Hay bạn muốn lấy tất cả những giá trị trùng?
Tôi nghĩ là được, với điều kiện bạn cho một ít dử liệu lên đây!
Hiện mình đang loay hoay lấy Path & Name của hình trên Comment gốc. Nếu gỡ được thì yêu cầu của Topic sử lý bằng hàm OK
Việc chèn 1 hình vào Comment gần giống như chèn hình vào Label trong UserForm... Tức sau khi anh chèn hình xong thì hoàn toàn có thể xóa file hình gốc... Hình trong Comment hay Label vẫn tồn tại, tức nó đã được "nhúng" thẳng vào Object chứ không phải dạng Link... Vì thế anh không có cách nào lấy được đường dẩn của hình đâu...mà thực chất cũng không hề tồn tại đường dẩn này, chèn xong là cắt đứt quan hệ luôn... Thế mới có chuyện chèn càng nhiều hình vào các Comment thì dung lượng file càng tăng lên (nếu dạng link thì đâu có hiện tượng này)
 
Lần chỉnh sửa cuối:
Cám ơn Anh Tuan nhé, mình tìm mãi không ra cái đường dẫn đến nguồn của nó thì ra vậy.
 

File đính kèm

  • doTrungbangFind.xls
    13.5 KB · Đọc: 24
Cái này thì tranh với hắn được

dạ ý em là lấy tất cả dữ liệu trùng bằng lệnh Find

PHP:
 Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim eRw As Long, MyAdd As String:        Dim Rng As Range, sRng As Range
 eRw = [A65500].End(xlUp).Row
 If Not Intersect(Target, Range("E2:e" & eRw)) Is Nothing Then
   Set Rng = Range("A1:A" & eRw)
   Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
   If sRng Is Nothing Then
      Target.Offset(, 1).Value = "Chua Co Nguoi Nay"
   Else
      MyAdd = sRng.Address:               Target.Offset(, 1).Value = "GPE"
      Do
         With Target.Offset(, 1)
            .Value = .Value & " & " & sRng.Offset(, 1).Value
         End With
         Set sRng = Rng.FindNext(sRng)
      Loop While Not sRng Is Nothing And MyAdd <> sRng.Address
      Target.Offset(, 1).Value = Mid(Target.Offset(, 1).Value, 6)
   End If
 End If
End Sub
 
PHP:
 Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim eRw As Long, MyAdd As String:        Dim Rng As Range, sRng As Range
 eRw = [A65500].End(xlUp).Row
 If Not Intersect(Target, Range("E2:e" & eRw)) Is Nothing Then
   Set Rng = Range("A1:A" & eRw)
   Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
   If sRng Is Nothing Then
      Target.Offset(, 1).Value = "Chua Co Nguoi Nay"
   Else
      MyAdd = sRng.Address:               Target.Offset(, 1).Value = "GPE"
      Do
         With Target.Offset(, 1)
            .Value = .Value & " & " & sRng.Offset(, 1).Value
         End With
         Set sRng = Rng.FindNext(sRng)
      Loop While Not sRng Is Nothing And MyAdd <> sRng.Address
      Target.Offset(, 1).Value = Mid(Target.Offset(, 1).Value, 6)
   End If
 End If
End Sub
Sư phụ ơi! Dùng Find nó cứ bị trường hợp tìm không theo tuần tự từ trên xuống dưới... Nó cứ tìm Item số 2 trước rồi mới tiếp...
Vậy nếu em muốn sửa lại để code luôn tìm theo đúng thứ tự từ trên xuống thì làm thế nào
Mà e rằng nếu sửa lại chắc cũng khá rắc rối... Em thà dùng AutoFilter còn hay hơn!
Hic...
 
Sư phụ ơi! Dùng Find nó cứ bị trường hợp tìm không theo tuần tự từ trên xuống dưới... Nó cứ tìm Item số 2 trước rồi mới tiếp...
Vậy nếu em muốn sửa lại để code luôn tìm theo đúng thứ tự từ trên xuống thì làm thế nào
Mà e rằng nếu sửa lại chắc cũng khá rắc rối... Em thà dùng AutoFilter còn hay hơn!
Hic...

Người đặt hàng là 'Thượng đế' mà! 'Thượng đế' bảo mình phương thức FIND(), thì mình cứ FIND() mần tới thôi!

Còn cách khắc phục ư, tất nhiên còn thô, nhưng cũng có những cách sau:

(*) Thêm 1 vài dòng lệnh điều kiện, như
Nếu VungTim.Cells(1,1).Value<> TriTim thì đi tìm. . .
(*) . . . (Sẽ ngâm cứu tiếp thêm, Ví dụ FindPrevious. . . ) . . . .:-=

Bổ sung ngay đây:

Ta lừa 'Nó' bằng câu lệnh này:

Mã:
Set Rng = Union([B1], Range("A1:A" & eRw))

Một khi biết chắc rằng [B1] không chứa trị đang tìm! hì, hì, , , ,

(Thấy chưa: Nhớ môn lịch sử về Lê Lai cứu chúa cũng lợi lắm nhễ!)
 
Chỉnh sửa lần cuối bởi điều hành viên:
PHP:
 Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim eRw As Long, MyAdd As String:        Dim Rng As Range, sRng As Range
 eRw = [A65500].End(xlUp).Row
 If Not Intersect(Target, Range("E2:e" & eRw)) Is Nothing Then
   Set Rng = Range("A1:A" & eRw)
   Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
   If sRng Is Nothing Then
      Target.Offset(, 1).Value = "Chua Co Nguoi Nay"
   Else
      MyAdd = sRng.Address:               Target.Offset(, 1).Value = "GPE"
      Do
         With Target.Offset(, 1)
            .Value = .Value & " & " & sRng.Offset(, 1).Value
         End With
         Set sRng = Rng.FindNext(sRng)
      Loop While Not sRng Is Nothing And MyAdd <> sRng.Address
      Target.Offset(, 1).Value = Mid(Target.Offset(, 1).Value, 6)
   End If
 End If
End Sub
Dạ ý em là làm function chứ không phải Sub
 
Muốn hàm thì có hàm, mà hai luôn. Mỗi cái xài 1 nơi!

Dạ ý em là làm function chứ không phải Sub

Đây là hàm của bạn:
PHP:
Option Explicit
Function LietKe(VungTra As Range, LookUpValue As Range) As String
 Dim Clls As Range
 For Each Clls In VungTra.Cells(1, 1).Resize(VungTra.Rows.Count)
   If Clls.Value = LookUpValue Then _
      LietKe = LietKe & " & " & Clls.Offset(, 1).Value
 Next Clls
 If Len(LietKe) > 3 Then
   LietKe = Mid(LietKe, 4)
 Else
   LietKe = "Chua Co Nguoi Nay Trong Danh Sach!"
 End If
End Function

Còn hàm này cho kết quả tốt chỉ trong cửa sổ Immediate
Mã:
Function TimKiem(VungTra As Range, LookUpValue As Range) As String
 Dim Clls As Range, Rng As Range:            Dim MyAdd As String
 
 Set Rng = VungTra.Cells(1, 1).Resize(VungTra.Rows.Count)
 Set Clls = Rng.Find(LookUpValue.Value, , xlFormulas, xlWhole)
 If Clls Is Nothing Then
   TimKiem = "Khong Co Ket Qua"
 Else
   MyAdd = Clls.Address
   Do
      TimKiem = TimKiem & " & " & Clls.Offset(, 1).Value
      Set Clls = Rng.FindNext(Clls)
   Loop While Not Clls Is Nothing And MyAdd <> Clls.Address
 
   If Len(TimKiem) > 3 Then
      TimKiem = Mid(TimKiem, 4)
   Else
      TimKiem = "Chua Co Nguoi Nay Trong Danh Sach!"
 End If:             End If
End Function
 
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom