Tìm row chứa sub string và copy

Liên hệ QC

hadoan-pap

Thành viên tiêu biểu
Tham gia
8/7/15
Bài viết
461
Được thích
20
Gửi mọi người!

Em có bài toán nhỏ mong mọi ng giúp cho e đoạn code ạ.

Trong file excel có 2 cột A, B.... e muốn tìm các row trong cột A mà có chứa từ khóa "apple", sau đó sẽ copy các row này sang cột B .

E xin cảm ơn!
 

File đính kèm

Gửi mọi người!

Em có bài toán nhỏ mong mọi ng giúp cho e đoạn code ạ.

Trong file excel có 2 cột A, B.... e muốn tìm các row trong cột A mà có chứa từ khóa "apple", sau đó sẽ copy các row này sang cột B .

E xin cảm ơn!
Nhập từ khóa "apple" vào ô B1.
Bạn xài tạm Sub này từ Module
PHP:
Public Sub Gpe()
Dim sArr(), dArr(), Rws As Long, I As Long, K As Long, R As Long, Txt As String
Range("B2").Resize(10000).ClearContents
Rws = Range("A1000000").End(xlUp).Row
    If Rws = 1 Then Exit Sub
    Txt = UCase(Range("B1").Value)
    sArr = Range("A1:A" & Rws).Value
    R = UBound(sArr)
ReDim dArr(1 To R, 1 To 1)
For I = 2 To R
    If UCase(sArr(I, 1)) Like "*" & Txt & "*" Then
        K = K + 1
        dArr(K, 1) = sArr(I, 1)
    End If
Next I
Hic:
If K Then Range("B2").Resize(K) = dArr
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Gửi mọi người!

Em có bài toán nhỏ mong mọi ng giúp cho e đoạn code ạ.

Trong file excel có 2 cột A, B.... e muốn tìm các row trong cột A mà có chứa từ khóa "apple", sau đó sẽ copy các row này sang cột B .

E xin cảm ơn!
Tham khảo thêm AdvancedFilter:
Nhập tiêu đề cột và điều kiện Filter của cột, ví dụ trong code: tiêu đề F2, điều kiện F3 ("*apple*"). G2 là kết quả trả về.
Mã:
Sub Button2_Click()
    [A1:A1000].AdvancedFilter 2, [F2:F3], [G2]
End Sub
 

File đính kèm

Upvote 0
Nhập từ khóa "apple" vào ô B1.
Bạn xài tạm Sub này từ Module
PHP:
Public Sub Gpe()
Dim sArr(), dArr(), Rws As Long, I As Long, K As Long, R As Long, Txt As String
Range("B2").Resize(10000).ClearContents
Rws = Range("A1000000").End(xlUp).Row
    If Rws = 1 Then Exit Sub
    Txt = UCase(Range("B1").Value)
    sArr = Range("A1:A" & Rws).Value
    R = UBound(sArr)
ReDim dArr(1 To R, 1 To 1)
For I = 2 To R
    If UCase(sArr(I, 1)) Like "*" & Txt & "*" Then
        K = K + 1
        dArr(K, 1) = sArr(I, 1)
    End If
Next I
Hic:
If K Then Range("B2").Resize(K) = dArr
End Sub
Gửi anh.

E cảm ơn đoạn code nhe…. Nhưng trong mong muốn lớn hơn của em là e k muốn nó so sánh key word đó từ ô B2, e muốn thể hiện luôn trong đoạn code anh ạ.

Ví thực tế của em là e muốn tìm row nào có 2,3 từ khóa thì sẽ copy sang cột bên cạnh anh ạ... k đơn giản chỉ là 1 từ.

Ví dụ như if cells.value = "apple" or "orange" or "Mango"..... như thế anh ạ.

Làm sao để gán thẳng các keywork mình muốn tìm vào trong đoạn code luôn vậy anh?

E cảm ơn!
 
Upvote 0
Gửi anh.

E cảm ơn đoạn code nhe…. Nhưng trong mong muốn lớn hơn của em là e k muốn nó so sánh key word đó từ ô B2, e muốn thể hiện luôn trong đoạn code anh ạ.

Ví thực tế của em là e muốn tìm row nào có 2,3 từ khóa thì sẽ copy sang cột bên cạnh anh ạ... k đơn giản chỉ là 1 từ.

Ví dụ như if cells.value = "apple" or "orange" or "Mango"..... như thế anh ạ.

Làm sao để gán thẳng các keywork mình muốn tìm vào trong đoạn code luôn vậy anh?

E cảm ơn!
Tham khảo AdvancedFilter, thêm key vào F4, code:
Mã:
Sub Button2_Click()
    [A1:A1000].AdvancedFilter 2, [F2:F4], [G2]
End Sub
 

File đính kèm

Upvote 0
Nhập từ khóa "apple" vào ô B1.
Bạn xài tạm Sub này từ Module
PHP:
Public Sub Gpe()
Dim sArr(), dArr(), Rws As Long, I As Long, K As Long, R As Long, Txt As String
Range("B2").Resize(10000).ClearContents
Rws = Range("A1000000").End(xlUp).Row
    If Rws = 1 Then Exit Sub
    Txt = UCase(Range("B1").Value)
    sArr = Range("A1:A" & Rws).Value
    R = UBound(sArr)
ReDim dArr(1 To R, 1 To 1)
For I = 2 To R
    If UCase(sArr(I, 1)) Like "*" & Txt & "*" Then
        K = K + 1
        dArr(K, 1) = sArr(I, 1)
    End If
Next I
Hic:
If K Then Range("B2").Resize(K) = dArr
End Sub
Gửi anh,

Sorry anh, e đã sửa dc rồi ạ.

Cảm ơn anh nh nhe!
 
Upvote 0
....
PHP:
...    If UCase(sArr(I, 1)) Like "*" & Txt & "*" Then
...
Thớt không có kinh nghiệm về dữ liệu kiểu chuỗi cho nên ra điều kiện không rõ ràng.
1. chỉ lấy "apple" như một từ.
2. lấy "apple" như một chuỗi con - tức là gồm cả "dapple"
Code trên áp dụng cho trường hợp 2
 
Upvote 0
Web KT

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

Back
Top Bottom