Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Sub lqxs()
  2. Dim i&, Arr, d, d1, k, t, x$, j&, a$, b$, n&
  3. Dim t1, t2, aa, c%, bb, Brr
  4. Set d = CreateObject("Scripting.Dictionary")
  5. Sheet1.Activate
  6. [b3:c5000].Clear
  7. Arr = [f2].CurrentRegion: n = UBound(Arr) - 1
  8. ReDim Brr(1 To UBound(Arr) - 1, 1 To 2)
  9. For i = 1 To UBound(Arr)
  10.     For j = 1 To UBound(Arr, 2)
  11.         If Arr(i, j) <> "" Then
  12.             d(j) = d(j) & i & ",": Exit For
  13.         End If
  14.     Next
  15. Next
  16. k = d.keys: t = d.items
  17. For c = UBound(k) To 1 Step -1
  18.     t1 = Left(t(c - 1), Len(t(c - 1)) - 1)
  19.     t2 = Left(t(c), Len(t(c)) - 1)
  20.     If InStr(t2, ",") Then
  21.         bb = Split(t2, ",")
  22.         For j = UBound(bb) To 0 Step -1
  23.             If InStr(t1, ",") Then
  24.                 aa = Split(t1, ",")
  25.                 For i = UBound(aa) To 0 Step -1
  26.                     If Val(bb(j)) > Val(aa(i)) Then
  27.                         Brr(n, 1) = Arr(aa(i), k(c - 1))
  28.                         Brr(n, 2) = Arr(bb(j), k(c)): n = n - 1
  29.                         Exit For
  30.                     End If
  31.                 Next
  32.             Else
  33.                 Brr(n, 1) = Arr(t1, k(c - 1))
  34.                 Brr(n, 2) = Arr(bb(j), k(c)): n = n - 1
  35.             End If
  36.         Next
  37.     Else
  38.         If InStr(t1, ",") Then
  39.             aa = Split(t1, ",")
  40.             For i = UBound(aa) To 0 Step -1
  41.                 If Val(t2) > Val(aa(i)) Then
  42.                     Brr(n, 1) = Arr(aa(i), k(c - 1))
  43.                     Brr(n, 2) = Arr(t2, k(c)): n = n - 1
  44.                     Exit For
  45.                 End If
  46.             Next
  47.         Else
  48.             Brr(n, 1) = Arr(t1, k(c - 1))
  49.             Brr(n, 2) = Arr(t2, k(c)): n = n - 1
  50.         End If
  51.     End If
  52. Next
  53. [b3].Resize(UBound(Brr), 2) = Brr
  54. [b3].Resize(UBound(Brr), 2).Borders.LineStyle = 1
  55. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement