In Excel heb ik 2 kolommen, A en B, beiden gevuld met getallen. Het aantal gevulde cellen in beide kolommen kan verschillen.
Nu heb ik op een ander forum een mooi script gevonden dat de verschillen toont tussen beide kolommen.
- Welke waardes komen wél in kolom B voor maar niet in A
- Welke waardes komen wél in kolom A voor maar niet in B
Echter zit er een bug in het script waardoor er altijd maar maximaal 1 verschil wordt getoond onder 'Not in B'.
Kan iemand me helpen debuggen?
Nu heb ik op een ander forum een mooi script gevonden dat de verschillen toont tussen beide kolommen.
- Welke waardes komen wél in kolom B voor maar niet in A
- Welke waardes komen wél in kolom A voor maar niet in B
Echter zit er een bug in het script waardoor er altijd maar maximaal 1 verschil wordt getoond onder 'Not in B'.
Kan iemand me helpen debuggen?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| Sub test() Dim a, i As Long, b(), n As Long, x a = Range("a1").CurrentRegion.Resize(,2).Value With CreateObject("Scripting.Dictionary") .CompareMode = vbTextCompare For i = 1 To UBound(a,1) If (Not IsEmpty(a(i,1))) * (Not .exists(a(i,1))) Then .add a(i,1), Nothing Next ReDim b(1 To UBound(a,1), 1 To 1) For i = 1 To UBound(a,1) If Not IsEmpty(a(i,2)) Then If Not .exists(a(i,2)) Then n = n + 1 : b(n,1) = a(i,2) Else .remove a(i,2) End If End If Next x = .keys End With With Range("d1") .CurrentRegion.ClearContents .Resize(,2).Value = [{"Not in A", "No in B"}] With .Offset(1) If n > 0 Then .Resize(n).Value = b End With On Error Resume Next .Offset(1,1).Resize(.Count).Value = Application.Transpose(x) End With End Sub |