21. januar 2016 - 14:06Der er
7 kommentarer og 1 løsning
Find forskel i tekst i excel
jeg har 2 kolonner (og 1000 rækker) med masser af tekst, hvor jeg har brug for at se, hvilke forskelle, der er mellem cellerne i de 2 kolonner. Kan man overhovedet det?
Dvs. i Celle A1 står der: Bamsen er rød i Celle B1 står der: Bamsen er blå
Jeg vil gerne have Excel til at vise mig, at hvad der er forskellen mellem cellerne. At sammenligne cellerne er ikke et problem, men jeg har brug for at vide, hvorfor cellerne er forskellige.
Prøv med denne makro, som farver teksten rød, hvor der er forskel. Den checker kolonne A mod Kolonne B. Farvningen sker i begge kolonner
Sub check() Dim x, y, z, LastRow As Long Lasrrow = Cells(65356, 1).End(xlUp).Row For x = 1 To 100 y = Application.Max(Len(Cells(x, 1)), Len(Cells(x, 2))) For z = 1 To y If Mid(Cells(x, 1), z, 1) <> Mid(Cells(x, 2), z, 1) Then Cells(x, 1).Characters(z, 1).Font.Color = vbRed Cells(x, 2).Characters(z, 1).Font.Color = vbRed Else Cells(x, 1).Characters(z, 1).Font.Color = vbBlack Cells(x, 2).Characters(z, 1).Font.Color = vbBlack End If Next Next End Sub
Der havde indsneget sig en lille fejl. Her er den korrigerede:
Sub check() Dim x, y, z, LastRow As Long LastRow = Cells(65356, 1).End(xlUp).Row For x = 1 To LastRow y = Application.Max(Len(Cells(x, 1)), Len(Cells(x, 2))) For z = 1 To y If Mid(Cells(x, 1), z, 1) <> Mid(Cells(x, 2), z, 1) Then Cells(x, 1).Characters(z, 1).Font.Color = vbRed Cells(x, 2).Characters(z, 1).Font.Color = vbRed Else Cells(x, 1).Characters(z, 1).Font.Color = vbBlack Cells(x, 2).Characters(z, 1).Font.Color = vbBlack End If Next Next End Sub
Tak, men det var så her jeg tabte mig selv på gulvet. Jeg har godt nok en håndbog i makroer, men har ikke lært det endnu. Jeg går ud fra, at der ikke findes en excelformel, der kan løse opgaven, og jeg skal tygge mig igennem de knap 100 sider af Gail Perry?
Du får en kort beskrivelse her: Kopier makroen i sin helhed, højreklik på Fanebladet og indsæt makroen under Vis Koder. Så er makroen placeret, og du behøver blot at køre den ved at vælge Vis - Makroer - Vis makroer vælg makroen og Kør.
Hvis du ikke har de to kolonner stående i A og B kan du bruge nedenstående makro i stedet. Den tillader dig at indtaste kolonnerne selv, når du kører makroen.
Sub check() Dim C1, C2, PCol, SCol, x, y, z, LastRow As Long PCol = InputBox("Which column do you want as primary?", "1.st Column Input", "A") SCol = InputBox("Which column do you want as secondary?", "2.nd Column Input", "B") C1 = Range(PCol & "1").Column C2 = Range(SCol & "1").Column LastRow = Application.Max(Cells(65356, C1).End(xlUp).Row, Cells(65356, C2).End(xlUp).Row) For x = 1 To LastRow y = Application.Max(Len(Cells(x, C1)), Len(Cells(x, C2))) For z = 1 To y If Mid(Cells(x, C1), z, 1) <> Mid(Cells(x, C2), z, 1) Then Cells(x, C1).Characters(z, 1).Font.Color = vbRed Cells(x, C2).Characters(z, 1).Font.Color = vbRed Else Cells(x, C1).Characters(z, 1).Font.Color = vbBlack Cells(x, C2).Characters(z, 1).Font.Color = vbBlack End If Next Next End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.