返回列表 上一主題 發帖

字串比對,顯示字串中不同之處並高亮處理

字串比對,顯示字串中不同之處並高亮處理

請問字串比對的問題
在使用公式比對出A&B的差異後,是否可以將差異字元做出高亮顯示

Q9.jpg

請問字串比對的問題
在使用公式比對出A&B的差異後,是否可以將差異字元做出高亮顯示
marklos 發表於 2022-8-15 15:00


只會VBA,請測試看看,謝謝
Sub test()
Dim Arr, i&, j%, T1, T2
Arr = Range([b1], [a65536].End(3))
For i = 1 To UBound(Arr)
    If Arr(i, 1) <> Arr(i, 2) Then
    j = 1
    Do While Len(Arr(i, 2)) + 1 > j
        T1 = Mid(Arr(i, 1), j, 1): T2 = Mid(Arr(i, 2), j, 1)
        If T1 <> T2 Then
            Cells(i, 2).Characters(j, 1).Font.ColorIndex = 3
        End If
        j = j + 1
    Loop
    End If
Next
End Sub

1.JPG (46.96 KB)

1.JPG

TOP

回復 2# samwang


    感謝~~測試正常
請問如果要比對的是B欄位跟C欄位的話,要如何修改?

TOP

回復  samwang


    感謝~~測試正常
請問如果要比對的是B欄位跟C欄位的話,要如何修改?
marklos 發表於 2022-8-16 19:42

如紅字,謝謝
Sub test()
Dim Arr, i&, j%, T1, T2
Arr = Range([c1], [b65536].End(3))
For i = 1 To UBound(Arr)
    If Arr(i, 1) <> Arr(i, 2) Then
    j = 1
    Do While Len(Arr(i, 2)) + 1 > j
        T1 = Mid(Arr(i, 1), j, 1): T2 = Mid(Arr(i, 2), j, 1)
        If T1 <> T2 Then
            Cells(i, 3).Characters(j, 1).Font.ColorIndex = 3
        End If
        j = j + 1
    Loop
    End If
Next
End Sub

TOP

回復 4# samwang
2022-08-17_151321.jpg

請問如果A欄位也要顯示差異的話,該如何修改?
謝謝

TOP

回復 5# marklos


    建議前輩提供能表達處裡格式後的用途情境 範例檔 或 再補充說明
1.因為1樓跟5樓的需求有小矛盾(dFn8,dfn8 如果在1樓是右邊f紅字,在5樓卻是左邊F紅字)
2.後學猜測前輩應該是想要兩邊都紅字! 改了一下 學習到samwang前輩的程式碼 供前輩參考

Sub test()
Dim Arr, i&, j%, T1, T2
Range([b1], [a65536].End(3)).Font.ColorIndex = 1
Arr = Range([b1], [a65536].End(3))
For i = 1 To UBound(Arr)
    If Arr(i, 1) <> Arr(i, 2) Then
    j = 1
    Do Until (Len(Arr(i, 1)) < j And Len(Arr(i, 2)) < j)
        T1 = Mid(Arr(i, 1), j, 1): T2 = Mid(Arr(i, 2), j, 1)
        If T1 <> T2 Then
            Cells(i, 1).Characters(j, 1).Font.ColorIndex = 3
            Cells(i, 2).Characters(j, 1).Font.ColorIndex = 3
        End If
        j = j + 1
    Loop
    End If
Next
End Sub

TOP

回復 6# Andy2483


確實是後來想要兩邊都用紅字來顯示差異~感謝幫忙與分享

TOP

        靜思自在 : 時時好心就是時時好日。
返回列表 上一主題