ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] ½Ð°Ý¦p¦ó±N¦Uµ§¼Æ¶q¡A¨Ì¤é´Á½d³ò¥[Á`?

¶}©l»Pµ²§ô¤é, ¦³§_¥i¯à¦P¤@¤Ñ???

TOP

¦³ÂI½ÆÂø, ¦Û¦æ°Ñ°u~~

  1. Sub TEST()
  2. Dim Arr, xD(3), d1, d2, i&, j&, k%, U%, Ur, Srr, xS As Worksheet
  3. For j = 0 To 3: Set xD(j) = CreateObject("Scripting.Dictionary"): Next j
  4. Arr = [L2:M30]
  5. For j = 1 To 2: For i = 1 To UBound(Arr)
  6.     If Arr(i, j) <> "" Then xD(0)(Arr(i, j)) = j
  7. Next: Next
  8. '--------------------------------
  9. Arr = Range([J1], Cells(Rows.Count, 1).End(xlUp))
  10. For i = 2 To UBound(Arr)
  11.     d1 = Arr(i, 3): d2 = Arr(i, 4)
  12.     If IsDate(d1) * IsDate(d2) = 0 Then GoTo 101
  13.     U = xD(0)(Arr(i, 2)) + 1
  14.     For j = d1 To d2 - 1
  15.         Ur = xD(U)(j)
  16.         If Not IsArray(Ur) Then Ur = Array(CDate(j), 0, 0, 0, 0, 0, 0)
  17.         For k = 5 To 10: Ur(k - 4) = Ur(k - 4) + Arr(i, k): Next k
  18.         xD(U)(j) = Ur
  19.     Next j
  20. 101: Next i
  21. '--------------------------------
  22. Srr = Array("", "¤@¯ë", "¯S®í1", "¯S®í2")
  23. For k = 1 To 3
  24.     With Sheets(Srr(k))
  25.          .UsedRange.Offset(1, 0).EntireRow.Delete
  26.          U = xD(k).Count: If U = 0 Then GoTo 102
  27.          With .[B2:H2].Resize(U)
  28.               .Value = Application.Transpose(Application.Transpose(xD(k).items))
  29.               .Sort Key1:=.Item(1), Order1:=xlAscending, Header:=xlNo
  30.          End With
  31.     End With
  32. 102: Next k
  33. End Sub
½Æ»s¥N½X


Xl0000054.rar (21.99 KB)


==============================

TOP

¦^´_ 8# gaishutsusuru


¤w­×§ï:
Xl0000054-2.rar (17.78 KB)

TOP

¦^´_ 11# gaishutsusuru

­Y¦UÃþ¶×Á`µ²ªG©T©w³Ì¦h6000µ§, ¥iµy²¤Æ:
  1. Sub TEST()
  2. Dim Arr, Brr, xD, r&, c%, i&, j&, k%, N&(2), Sr As Range
  3. [O2:AP6000].Clear: Brr = [O2:AP6000]
  4. Set xD = CreateObject("Scripting.Dictionary")
  5. For Each Sr In [L2:M30]
  6.     k = 1 - k: If Sr <> "" Then xD(Sr & "/") = 2 - k
  7. Next
  8. '--------------------------------
  9. Arr = Range([J1], Cells(Rows.Count, 1).End(xlUp))
  10. For i = 2 To UBound(Arr)
  11.     If IsDate(Arr(i, 3)) * IsDate(Arr(i, 3)) = 0 Then GoTo 101
  12.     c = xD(Arr(i, 2) & "/")
  13.     For j = Arr(i, 3) To Arr(i, 4) - 1
  14.         r = xD(j & "|" & c)
  15.         If r = 0 Then N(c) = N(c) + 1: r = N(c): xD(j & "|" & c) = r
  16.         Brr(r, c * 10 + 2) = CDate(j)
  17.         For k = 3 To 8: Brr(r, c * 10 + k) = Brr(r, c * 10 + k) + Arr(i, k + 2): Next k
  18.     Next j
  19. 101: Next i
  20. '''--------------------------------
  21. [O2:AP6000] = Brr
  22. For Each Sr In Range("P2,Z2,AJ2")
  23.     Sr.Resize(6000, 7).Sort Key1:=Sr, Order1:=xlAscending, Header:=xlNo
  24. Next
  25. MsgBox "~~¤ÀÃþ¥[Á`§¹¦¨~~  "
  26. End Sub
½Æ»s¥N½X

TOP

        ÀR«ä¦Û¦b : ¶¢¤HµL¼Ö½ì¡A¦£¤HµL¬O«D¡C
ªð¦^¦Cªí ¤W¤@¥DÃD