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

[µo°Ý] ¦p¦ó¨Ï¥Îvba°µ§ó§Ö³tªº­pºâ

[µo°Ý] ¦p¦ó¨Ï¥Îvba°µ§ó§Ö³tªº­pºâ

1.rar (567.37 KB)
·Q½Ð°Ý¦U¦ì¤j¤j­Ì¡A¥Ø«eªþ¥ó¤¤ªºexcel¸ê®Æ¬O¨Ï¥Î¨ç¼Æ°µ­pºâ¡A¦ý³t«×«ÜºC¥B®e©ö¥X¿ù¡A·Q¹Á¸Õ¨Ï¥Îvba¥h°µ§ó§Ö³tªº­pºâ¡A¤]¦³¶R®Ñ¦^¨Ó¬ã¨s¡A¦ý"¦³¬Ý¨S¦³À´"¡A¤£ª¾¦U¦ì¤j¤j­Ì¡A¬O§_¥i¥HÀ°¦£¸Ñ¨M°ÝÃD??
¥D­n¬O·Q§â'2015¥Í²£¤é³øªí²Î­p'¤¤ªº¼Æ¶q°µ²Î­p¡A¦]¨C¤Ñ¥i¯à¦³¼Æµ§¤£¦Pªº¸ê®Æ¡A·Q²Î­p¦U¶µ­ì®Æªº¨Ï¥Î¶q¡A©Ò¥H­n°Ï¤À¬°¨C¤é¡B¨C¤ë¤Î¨C¦~¡AÁÂÁ¦U¦ì~~

¥»©«³Ì«á¥Ñ ­ã´£³¡ªL ©ó 2015-10-23 14:01 ½s¿è

¨S¦³Â²«K¼gªk¡A¥u¯à³v¤@®M¡A
¦³ÂI½ÆÂø¡A½Ð¦Û¦æºCºC¬ã¨s¡Aµ{¦¡½X¤Ó¦h¡AµLªk¤@¤@¸Ñ»¡¡G
¡@
Sub ²Î­p()
Dim j&, k&, Arr, Brr, R&, C&, LB, Day1&, Day2&
Dim Crr, Drr, iDate, DV&, D&, M&, SS
With Sheets(1).UsedRange.Offset(1, 0)
¡@¡@Arr = .Columns("C"):     R = UBound(Arr) - 1
¡@¡@Brr = .Columns("N:DU"):  C = UBound(Brr, 2)
¡@¡@Day1 = CDate(Left(.Parent.Name, 4) & "/1/1")
¡@¡@Day2 = CDate(Left(.Parent.Name, 4) & "/12/31")
¡@¡@DV = Day2 - Day1 + 1
End With
¡@
ReDim Crr(1 To DV, 1 To C), Drr(1 To 12, 1 To C)
For j = 2 To R
¡@¡@iDate = Arr(j, 1): If Not IsDate(iDate) Then GoTo 101
¡@¡@If iDate < Day1 Or iDate > Day2 Then GoTo 101
¡@¡@D = iDate - Day1 + 1:  M = Month(iDate)
¡@¡@For k = 1 To C
¡@¡@¡@¡@SS = Crr(D, k) + Brr(j, k)
¡@¡@¡@¡@If SS <> 0 Then Crr(D, k) = SS
¡@¡@¡@¡@SS = Drr(M, k) + Brr(j, k)
¡@¡@¡@¡@If SS <> 0 Then Drr(M, k) = SS
¡@¡@Next k
101: Next j
¡@
With Sheets("¼Æ¶q²Î­p")
¡@¡@.UsedRange.EntireRow.Delete
¡@¡@.[B1].Resize(R, C) = Brr: .[A1] = "¥Í²£¤é´Á"
¡@¡@.[A1].Resize(R) = Arr
¡@¡@.[A1].Resize(R).NumberFormatLocal = "yyyy/mm/dd"
¡@¡@With .Cells(R + 1, 1).Resize(1, C + 1)
¡@¡@¡@¡@.Formula = "=IF(COLUMN()=1,""TOTAL"",SUM(A2:A" & R & "))"
¡@¡@¡@¡@.Borders(xlEdgeTop).LineStyle = xlContinuous
¡@¡@¡@¡@.Borders(xlEdgeBottom).LineStyle = xlDouble
¡@¡@End With
End With
¡@
With Sheets("¤é´Á²Î­p")
¡@¡@.UsedRange.EntireRow.Delete
¡@¡@.[B1].Resize(1, C) = Brr: .[A1] = "¥Í²£¤é´Á"
¡@¡@.[A2].Resize(DV, 1) = "=" & Day1 & "+ROW(A1)-1"
¡@¡@.[A2].Resize(DV, 1).NumberFormatLocal = "yyyy/mm/dd"
¡@¡@.[B2].Resize(DV, C) = Crr
¡@¡@With .Cells(DV + 2, 1).Resize(1, C + 1)
¡@¡@¡@¡@.Formula = "=IF(COLUMN()=1,""TOTAL"",SUM(A2:A" & DV + 1 & "))"
¡@¡@¡@¡@.Borders(xlEdgeTop).LineStyle = xlContinuous
¡@¡@¡@¡@.Borders(xlEdgeBottom).LineStyle = xlDouble
¡@¡@End With
End With
¡@
With Sheets("¤ë¥÷²Î­p")
¡@¡@.UsedRange.EntireRow.Delete
¡@¡@.[B1].Resize(1, C) = Brr: .[A1] = "¥Í²£¤ë¥÷"
¡@¡@.[A2].Resize(12) = "=TEXT(ROW(A1),""00¤ë"")"
¡@¡@.[B2].Resize(12, C) = Drr
¡@¡@With .Cells(14, 1).Resize(1, C + 1)
¡@¡@¡@¡@.Formula = "=IF(COLUMN()=1,""TOTAL"",SUM(A2:A13))"
¡@¡@¡@¡@.Borders(xlEdgeTop).LineStyle = xlContinuous
¡@¡@¡@¡@.Borders(xlEdgeBottom).LineStyle = xlDouble
¡@¡@End With
End With
End Sub
¡@
ªþÀɤU¸ü¡G
Xl0000147(¼Æ¶q²Î­p).rar (27.39 KB)
¡@

TOP

¦^´_ 2# ­ã´£³¡ªL
·PÁ¤j¤jªº«ü¾É,§Ú·|ºCºC¬ã¨s±zªº¼gªk~~
¦ý¹ê»Ú®M¥Î«á«o¥X²{¿ù»~,¦pªG¸ê®Æ¶W¹L218¦C,§YÅã¥Ü°»¿ù,¥B°»¿ù°±¯d¦b  SS = Drr(M, k) + Brr(j, k) ³o¸Ì,¤£ª¾¬O§_¬°¸ê®Æ¤Ó¦h,ÁÙ¬OVBA¦³¦a¤è­n°µ­×§ï,ÁÂÁÂ~~

TOP

¦^´_ 3# ting870520


¤@¤d¦C¥H¤W¤]¥i¥H¥¿±`¹B§@, ¬Ý¤@¤U±zªº¸ê®Æ¤º®e¬O§_¦³°ÝÃD~~

TOP

        ÀR«ä¦Û¦b : °µ¸Ó°µªº¨Æ¬O´¼¼z¡A°µ¤£¸Ó°µªº¨Æ¬O·Mè¡C
ªð¦^¦Cªí ¤W¤@¥DÃD