Cần giúp tối ưu hóa Code tìm ô đầu tiên nằm trên cùng có chứa 2 ký tự "CT" bên trái (1 người xem)

Người dùng đang xem chủ đề này

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
934
Được thích
240
Giới tính
Nam
Chào các bạn GPE!
Nhờ các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Tìm ô đầu tiên nằm trên cùng có chứa 2 ký tự "CT" bên trái ngoài cùng trong ô
ở cột A, tôi dùng Code:
PHP:
[A:A].Find("CT", , , , , , False, False).Activate
=> Code trên không mấy hiệu quả vì phải tìm qua nhiều ô có chứa ký tự "CT" không như mong muốn => Có Code tìm kiếm nào tối ưu hơn Code trên hay không?
Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.
 

File đính kèm

Chào các bạn GPE!
Nhờ các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Tìm ô đầu tiên nằm trên cùng có chứa 2 ký tự "CT" bên trái ngoài cùng trong ô
ở cột A, tôi dùng Code:
PHP:
[A:A].Find("CT", , , , , , False, False).Activate
=> Code trên không mấy hiệu quả vì phải tìm qua nhiều ô có chứa ký tự "CT" không như mong muốn => Có Code tìm kiếm nào tối ưu hơn Code trên hay không?
Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.

PHP:
Sub Find_Select()
   Dim rng As Range
    Set rng = [A:A].Find("CT*", LookAt:=xlPart)
    If Not rng Is Nothing Then rng.Activate
End Sub
 
Upvote 0
Mình không xem File, chỉ code chay theo yêu cầu mô tả bên ngoài
Còn thế nào là hiệu quả thì mình không biết đâu
Dạ, hiệu quả nghĩa là chạy Code 1 phát là tới ngay ô cần tìm ạ. Chứ Code đó "chạy" qua nhiều ô có 2 ký tự "CT" không như mong muốn. Chẳng lẽ không có phương án tối ưu hay sao nhỉ?
 
Upvote 0
Dạ, hiệu quả nghĩa là chạy Code 1 phát là tới ngay ô cần tìm ạ. Chứ Code đó "chạy" qua nhiều ô có 2 ký tự "CT" không như mong muốn. Chẳng lẽ không có phương án tối ưu hay sao nhỉ?

Chỉnh lại 1 chút thử xem:

Mã:
Sub Find_Select()
    Dim rng As Range
    Set rng = [A:A].Find("CT*", LookAt:=xlWhole)
    If Not rng Is Nothing Then
        rng.Activate
    Else
        MsgBox "Khong tim thay du lieu nao thoa dieu kien"
    End If
    
End Sub
 
Upvote 0
Chỉnh lại 1 chút thử xem:

Mã:
Sub Find_Select()
    Dim rng As Range
    Set rng = [A:A].Find("CT*", LookAt:=xlWhole)
    If Not rng Is Nothing Then
        rng.Activate
    Else
        MsgBox "Khong tim thay du lieu nao thoa dieu kien"
    End If
    
End Sub
Wow, quá hay ạ, tôi xin phép viết lại Code cho gọn:
PHP:
Sub Find_Select()
If Not [A:A].Find("CT*", LookAt:=xlWhole) Is Nothing Then [A:A].Find("CT*", LookAt:=xlWhole).Activate
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Wow, quá hay ạ, tôi xin phép viết lại Code cho gọn:
PHP:
Sub Find_Select()
[A:A].Find("CT*", LookAt:=xlWhole).Activate
End Sub
Khi bạn giỏi code thêm chút nữa và quay lại đọc mấy bài này thì mới ngộ ra được 1 số vấn đề thừa và thiếu.
 
Upvote 0

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

Back
Top Bottom