Thay thế dòng trùng bằng một dòng khác

Liên hệ QC

kegiaumat055

Thành viên chính thức
Tham gia
22/4/11
Bài viết
91
Được thích
2
Mình có một ví dụ dưới đây:
Mã:
                  A                                 B
[B]18[test]http://google.com[/B]    1[test]http://bing1.com    
270[test]http://google1.com    2[test]http://bing2.com    
455[test]http://google2.com    [COLOR=#0000ff][B]18[test]http://bing.com [/B][/COLOR]   
        
------------------------------------------------Ket qua        
        
[B]18[test]http://google.com[/B]    1[test]http://bing1.com    
270[test]http://google1.com    2[test]http://bing2.com    
455[test]http://google2.com    [COLOR=#ff0000][B]18[test]http://google.com[/B] [/COLOR]

Bài toán đưa ra là so sánh số ở mỗi đầu dòng cột A so với số mỗi dòng bên cột B. Nếu trùng thì dòng có số trùng ở cột B sẽ được thay bằng dòng có số trùng ở cột A.

Với ví dụ trên: Dòng thứ 1 cột A có số trùng với dòng thứ 3 cột B (số trùng là 18). Nên dòng thứ 3 cột B được thay thế bằng dòng thứ 1 cột A (18[test]http://bing.com được thay thế bằng 18[test]http://google.com)

Các bạn có thể giúp mình được không ? Cám ơn nhiều !
 

File đính kèm

Lần chỉnh sửa cuối:
Mình có một ví dụ dưới đây:
Mã:
                  A                                 B
[B]18[test]http://google.com[/B]    1[test]http://bing1.com    
270[test]http://google1.com    2[test]http://bing2.com    
455[test]http://google2.com    [COLOR=#0000ff][B]18[test]http://bing.com [/B][/COLOR]  
        
------------------------------------------------Ket qua        
        
[B]18[test]http://google.com[/B]    1[test]http://bing1.com    
270[test]http://google1.com    2[test]http://bing2.com    
455[test]http://google2.com    [COLOR=#ff0000][B]18[test]http://google.com[/B] [/COLOR]

Bài toán đưa ra là so sánh số ở mỗi đầu dòng cột A so với số mỗi dòng bên cột B. Nếu trùng thì dòng có số trùng ở cột B sẽ được thay bằng dòng có số trùng ở cột A.

Với ví dụ trên: Dòng thứ 1 cột A có số trùng với dòng thứ 3 cột B (số trùng là 18). Nên dòng thứ 3 cột B được thay thế bằng dòng thứ 1 cột A (18[test]http://bing.com được thay thế bằng 18[test]http://google.com)

Các bạn có thể giúp mình được không ? Cám ơn nhiều !
Bạn sử dụng code sau nhé:
PHP:
Sub ThayThe()
    Dim Cll As Range, Dupl As Range
    Sheet1.Activate
    On Error Resume Next
    For Each Cll In Range([B1], [B65536].End(xlUp))
        Set Dupl = Range("A:A").Find(Left(Cll, InStr(Cll, "[")), , , xlPart)
        If Not Dupl Is Nothing Then Cll = Dupl
    Next
End Sub
 
Bạn sử dụng code sau nhé:
PHP:
Sub ThayThe()
    Dim Cll As Range, Dupl As Range
    Sheet1.Activate
    On Error Resume Next
    For Each Cll In Range([B1], [B65536].End(xlUp))
        Set Dupl = Range("A:A").Find(Left(Cll, InStr(Cll, "[")), , , xlPart)
        If Not Dupl Is Nothing Then Cll = Dupl
    Next
End Sub

Rất cảm ơn về code của bạn nhưng nó có một lỗi nhỏ. Code của bạn hình như nó tìm chữ số ngoài cùng rồi thay thế luôn chứ nó không tìm tất cả.

Với ví dụ dưới đây, nó mới so sánh số 1 và đã thay thế luôn ! --=0
ví dụ:

4551[test]http://google2.com và 1[test]http://googlgggggggg2.com
Kết quả:
4551[test]http://google2.com và 4551[test]http://google2.com
 
Rất cảm ơn về code của bạn nhưng nó có một lỗi nhỏ. Code của bạn hình như nó tìm chữ số ngoài cùng rồi thay thế luôn chứ nó không tìm tất cả.

Với ví dụ dưới đây, nó mới so sánh số 1 và đã thay thế luôn ! --=0
ví dụ:

4551[test]http://google2.com và 1[test]http://googlgggggggg2.com
Kết quả:
4551[test]http://google2.com và 4551[test]http://google2.com
Bạn sửa lại code như sau:
PHP:
Sub ThayThe()
    Dim Cll As Range, Dupl As Range
    Sheet1.Activate
    On Error Resume Next
    For Each Cll In Range([B1], [B65536].End(xlUp))
        Set Dupl = Range("A:A").Find(Left(Cll, InStr(Cll, "[")), , , xlPart)
        If Not Dupl Is Nothing Then
            If Dupl Like Left(Cll, InStr(Cll, "[")) & "*" Then Cll = Dupl
        End If
    Next
End Sub
 
Web KT

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

Back
Top Bottom