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

[µo°Ý] ¿é¤J¼Æ­È«á¡A¦p¦ó±Ò°Ê¦Û°Ê¤U©Ô¤@®æªº¾÷¨î?

¥»©«³Ì«á¥Ñ GBKEE ©ó 2015-7-24 06:21 ½s¿è

¦^´_ 14# finally0130

¸Õ¸Õ¬Ý
²Ä6©«Àɮתºµ{¦¡½X
  1. Option Explicit
  2. Dim x_Mon As Integer, x_Week As Integer
  3. Sub Ex()
  4.     Dim R As Long, E As Variant, t As Date
  5.     t = Time
  6.     Range("F4:Z" & Rows.Count) = "" '²M°£Â¦³¸ê®Æ Rows.Count ½d³òªº¦CÁ`¼Æ,³o¸Ì¬°¤u§@ªí½d³ò
  7.    
  8.     R = Range("D4").End(xlDown).Row '¤é¥­§¡»ùªº³Ì«á¤@¦C¸¹
  9.     With Range("B4:B" & R)          '¤ë§O½d³ò
  10.         .Cells = "=MONTH(RC[2])"    '¤u§@ªí¤W¼g¤J¨ç¼Æ,[R1C1]¤u§@ªí¤WÄæ¦W¦C¦Wªí¥Üªk
  11.         .Value = .Value             '¤½¦¡Âà­È
  12.     End With
  13.     With Range("C4:C" & R)          '©P§O½d³ò
  14.         .Cells = "=WEEKNUM(RC[1])"  '2003: ¼W¯q¶°¶·¥[¤J VBA¤ÀªR¤u¨ã½c
  15.         .Value = .Value
  16.     End With
  17.     x_Week = DatePart("ww", Range("D4")) 'VBAªº¶g§O¨ç¼Æ
  18.     x_Mon = Month(Range("D4"))           'VBAªº¤ë§O¨ç¼Æ
  19.    
  20.     For Each E In Range("D4:D" & R)      '¤é´Á½d³ò
  21.         ¶g¤ë¦¬½L»ù E                     '©I¥s Sub ¶g¤ë¦¬½L»ù E(¶Ç»¼°Ñ¼Æ)
  22.         x_Week = DatePart("ww", E)       '¦AŪ·í¶g
  23.         x_Mon = Month(E)                 '¦AŪ·í¤ë
  24.     Next
  25.     §¡»ù      '©I¥s Sub §¡»ù
  26.     MsgBox Application.Text(Time - t, "¦@­p°õ¦æ [s] ¬í")
  27. End Sub
  28. Sub §¡»ù()
  29.     Dim Rng As Range, E As Variant,  i As Integer, AR()
  30.     AR = Array(5, 10, 20, 60, 120)
  31.     For Each E In Array("F4", "N4", "V4")   '¤é¥­§¡»ù,©P¥­§¡»ù,¤ë¥­§¡»ùªº²Ä¤@­ÓÄæ¦ì
  32.         Set Rng = Range(E).Resize(Range(E).Offset(, -1).End(xlDown).Row - 3, 5)
  33.         For i = 0 To UBound(AR)
  34.             With Rng.Columns(i + 1) '§¡»ù½d³òªº¨C¤@­ÓÄæ¦ì½d³ò
  35.                 If .Rows.Count > AR(i) Then  '½d³ò¤p©ó§¡»ù¤é¼Æ ¤U­±ªºWith·|¦³¿ù»~
  36.                     With .Cells(AR(i)).Resize(.Rows.Count - AR(i) + 1)
  37.                         .Cells = "=Average(RC[" & -i + -1 & "]:R[" & -AR(i) + 1 & "]C[" & -i + -1 & "])"
  38.                         '¤u§@ªí¤W¼g¤J¤½¦¡
  39.                     End With
  40.                 End If
  41.             End With
  42.         Next
  43.         Rng.Value = Rng.Value  'Âऽ¦¡¬°­È
  44.     Next
  45. End Sub
  46. Sub ¶g¤ë¦¬½L»ù(E As Variant) 'Ū¨ú¨ì:©P¦¬½L»ù,¤ë¦¬½L»ù
  47.     If x_Week <> DatePart("ww", E) Then  '¤£¦P¶g¼Æ
  48.         With Range("L" & Rows.Count).End(xlUp).Offset(1)
  49.             .Resize(, 2) = E.Offset(-1).Resize(, 2).Value 'Eªº¤W¤@¦C
  50.             .Cells(1, 0) = DatePart("ww", E.Offset(-1))
  51.         End With
  52.     End If
  53.     If x_Mon <> Month(E) Then           '¤£¦P¤ë¼Æ
  54.         With Range("T" & Rows.Count).End(xlUp).Offset(1)
  55.             .Resize(, 2) = E.Offset(-1).Resize(, 2).Value
  56.             .Cells(1, 0) = Month(E.Offset(-1))
  57.         End With
  58.     End If
  59. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

        ÀR«ä¦Û¦b : ¥Ç¿ù¥XÄb®¬¤ß¡A¤~¯à²M²bµL·Ð´o¡C
ªð¦^¦Cªí ¤W¤@¥DÃD