Giúp phân biệt sự khác nhau giữa các ký tự.

  • Thread starter Thread starter snst
  • Ngày gửi Ngày gửi
Liên hệ QC

snst

Thành viên hoạt động
Tham gia
9/4/13
Bài viết
106
Được thích
3
Các anh trên diễn đàn giúp em chuyện này với. em muốn tìm sự khác nhau giữa các ký tự, theo thứ tự giữa các hàng với nhau. Có hàm nào làm được không vậy, cảm ơm mọi người. (em có ví dụ kèm theo)
 

File đính kèm

Mọi người giúp em với. em đang cần giải quyết công việc gấp quá. e xin cảm ơn.
 
Các anh trên diễn đàn giúp em chuyện này với. em muốn tìm sự khác nhau giữa các ký tự, theo thứ tự giữa các hàng với nhau. Có hàm nào làm được không vậy, cảm ơm mọi người. (em có ví dụ kèm theo)
Bạn nói là có phân biệt dấu cách giữa các ký tự nhưng trong ví dụ ở dòng 3 thì không tính các dấu cách nên không biết ý bạn là như thế nào.
 
Các anh trên diễn đàn giúp em chuyện này với. em muốn tìm sự khác nhau giữa các ký tự, theo thứ tự giữa các hàng với nhau. Có hàm nào làm được không vậy, cảm ơm mọi người. (em có ví dụ kèm theo)
Trong file đính kèm thấy bạn bỏ qua khoảng trắng, thử cách này xem, nếu giống nhau thì trả về dấu # (hoặc dấu gì đó), nếu khác thì lấy ký tự khác ở cột C, trả về chuỗi ở cột B. Tham khảo code, file vidu(1):
[gpecode=vb]
Sub Button1_Click()
Dim ChA As String, ChC As String, ChB As String
Dim i As Long, j As Byte, Rng As Range
Set Rng = Sheet1.Range([A1], [A65535].End(3))
For i = 1 To Rng.Rows.Count
ChB = ""
ChA = Replace(Rng(i), " ", "")
ChC = Replace(Rng(i).Offset(, 2), " ", "")
For j = 1 To Len(ChC)
If Mid(ChC, j, 1) = Mid(ChA, j, 1) Then
ChB = ChB & "#"
Else
ChB = ChB & Mid(ChC, j, 1)
End If
Next j
Rng(i).Offset(, 1) = ChB
Next i
End Sub
[/gpecode]
Thử thêm code này xem: Loại bỏ khoảng trắng, coppy cột C sang cột B, tô màu những ký tự khác nhau, file vidu(2):
[gpecode=vb]
Sub Button1_Click()
Dim ChA As String, ChB As String
Dim i As Long, j As Byte, Rng As Range
Set Rng = Sheet1.Range([A1], [A65535].End(3))
For i = 1 To Rng.Rows.Count
ChA = Replace(Rng(i), " ", "")
ChB = Replace(Rng(i).Offset(, 2), " ", "")
Rng(i).Offset(, 1) = ChB
For j = 1 To Len(ChB)
If Mid(ChB, j, 1) <> Mid(ChA, j, 1) Then
Rng(i).Offset(, 1).Characters(Start:=j, Length:=1).Font.ColorIndex = 3
End If
Next j
Next i
End Sub
[/gpecode]
Nếu các khoảng trắng trùng khớp nhau thì sửa code một chút:
[gpecode=vb]
Sub Button2_Click()
Dim ChA As String, ChB As String
Dim i As Long, j As Byte, Rng As Range
Set Rng = Sheet2.Range([A1], [A65535].End(3))
For i = 1 To Rng.Rows.Count
For j = 1 To Len(Rng(i).Offset(, 2))
If Mid(Rng(i).Offset(, 2), j, 1) <> Mid(Rng(i), j, 1) Then
Rng(i).Offset(, 2).Characters(Start:=j, Length:=1).Font.ColorIndex = 3
End If
Next j
Next i
End Sub
[/gpecode]
 

File đính kèm

Lần chỉnh sửa cuối:
Cảm ơn mọi người, có hàm nào xử lý không ạh, chứ mấy macro em không rành lắm.
P/S:ý em là muốn so sánh phát hiện các ký tự sai kể cả thiếu dấu cách giữa hai hàng vối nhau thôi.
 
Cảm ơn mọi người, có hàm nào xử lý không ạh, chứ mấy macro em không rành lắm.
P/S:ý em là muốn so sánh phát hiện các ký tự sai kể cả thiếu dấu cách giữa hai hàng vối nhau thôi.

Không có hàm nào làm được việc này đâu bạn. Dựa theo kết quả mẫu của bạn thì tôi làm thế này, Macro nhé.
PHP:
Sub SoSanh()
Dim Str1 As String, Str2 As String, MyRng As Range, Cll As Range, i As Long, j As Long
Set MyRng = Range([C65536].End(xlUp), [C2])
For Each Cll In MyRng
    Str1 = Replace(Cll.Offset(, -2), " ", "")
    Str2 = Cll.Value
    Cll.Font.ColorIndex = xlAutomatic
    j = 0
    For i = 1 To Len(Str2)
        If Mid(Str2, i, 1) <> " " Then
            j = j + 1
            If Mid(Str2, i, 1) <> Mid(Str1, j, 1) Then
                Cll.Characters(i, 1).Font.Color = -16776961
            End If
        End If
    Next
Next
End Sub
 

File đính kèm

Không có hàm nào làm được việc này đâu bạn. Dựa theo kết quả mẫu của bạn thì tôi làm thế này, Macro nhé.
PHP:
Sub SoSanh()
Dim Str1 As String, Str2 As String, MyRng As Range, Cll As Range, i As Long, j As Long
Set MyRng = Range([C65536].End(xlUp), [C2])
For Each Cll In MyRng
    Str1 = Replace(Cll.Offset(, -2), " ", "")
    Str2 = Cll.Value
    Cll.Font.ColorIndex = xlAutomatic
    j = 0
    For i = 1 To Len(Str2)
        If Mid(Str2, i, 1) <> " " Then
            j = j + 1
            If Mid(Str2, i, 1) <> Mid(Str1, j, 1) Then
                Cll.Characters(i, 1).Font.Color = -16776961
            End If
        End If
    Next
Next
End Sub
Cái lệnh này muốn chạy vào trong file excel thì làm thế nào thế anh.
 
Các anh trên diễn đàn giúp em chuyện này với. em muốn tìm sự khác nhau giữa các ký tự, theo thứ tự giữa các hàng với nhau. Có hàm nào làm được không vậy, cảm ơm mọi người. (em có ví dụ kèm theo)

Bạn xem thử file sau
 

File đính kèm

Web KT

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

Back
Top Bottom