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

½Ð°Ý¦p¦ó±N°}¦C¸ê®Æ°µ¾ã²z¦b¬d§äÀÉÅã¥Ü¥X¨Ó?

  1. Sub yy()
  2.     Dim n%, i%, j%, m%, arr, arr2(), b()
  3.     ActiveSheet.UsedRange.Offset(2, 0) = ""
  4.     Application.ScreenUpdating = False
  5.     Workbooks.Open Filename:=ThisWorkbook.Path & "\" & [a1] & ".xls"
  6.     With ActiveSheet
  7.         n = .[a65536].End(xlUp).Row
  8.         arr = .Range(.[a1], .Cells(n, 5))
  9.         ReDim arr2(1 To 5, 1 To UBound(arr))
  10.     End With
  11.     ActiveWorkbook.Close True
  12.     Set d = CreateObject("scripting.dictionary")
  13.     For i = 1 To n
  14.         If i = 1 Then x = "Á`­p" Else x = arr(i, 4) - arr(i, 5)
  15.         b = Array(arr(i, 1), arr(i, 2), arr(i, 4), arr(i, 5), x)
  16.         If Not d.exists(arr(i, 1)) Then
  17.             m = m + 1
  18.             d(arr(i, 1)) = m
  19.             For j = 1 To 5
  20.                 arr2(j, m) = b(j - 1)
  21.             Next
  22.         Else
  23.             For j = 3 To 5
  24.                 arr2(j, d(arr(i, 1))) = arr2(j, d(arr(i, 1))) + arr(i, j)
  25.             Next
  26.         End If
  27.     Next
  28.     [a3].Resize(m, 5) = Application.Transpose(arr2)
  29.     Application.ScreenUpdating = True
  30. End Sub
½Æ»s¥N½X
a.gif

TOP

¥»©«³Ì«á¥Ñ oobird ©ó 2011-8-13 10:52 ½s¿è

³á¡AÅý§Ú¦³ÂIºÃ´b,¦]¬°¶W¯Åª©¥D
¼gªº¨º·|¦³°ÝÃD,¨SÃö«Y
¡A«¢«¢¡I¦b¤U·Q½Ð±Ð¡A¬O­þ¸Ì·|¦³°ÝÃD¡H
»¡¥X¨Ó¤]¦nÅý§Ú¾Ç²ß¾Ç²ß¡C

TOP

Workbooks.Open Filename:=ThisWorkbook.Path & "\" & [a1] & ".xls"
    With ActiveSheet
        n = .[a65536].End(xlUp).Row
        arr = .Range(.[a1], .Cells(n, 5))
°õ¦æ¨ì³o¤@¥y®É¡A¤w§â©Ò¦³¼Æ¾Ú¦s¦b°}¦C°O¾Ð¤¤¤F¡A¤§«áªº¦s¨ú³£¦b³o­Ó°}¦C¤¤
¥´¶}ªº¬¡­¶Ã¯¤w¸g¥Î¤£µÛ´N¥i¥HÃö³¬¤F¡C
§A­n²¾¨ì«á­±¦AÃö¤]ÀH§A¤F¡C¤£¥i¯à²¾¨ì«á­±¥hµ{¦¡¤~·|okªº¡C

TOP

        ÀR«ä¦Û¦b : ¡i®É¤é²öªÅ¹L¡j¤@­Ó¤H¦b¥@¶¡°µ¤F¦h¤Ö¨Æ¡A´Nµ¥©ó¹Ø©R¦³¦hªø¡C¦]¦¹¥²¶·»P®É¶¡Ävª§¡A¤Á²ö¨Ï®É¤éªÅ¹L¡C
ªð¦^¦Cªí ¤W¤@¥DÃD