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

¦p¦ó¤À§O­pºâ¥X12', 13' , 14', 15'¦~ªº¤U³æÁ`¼Æ¶q

¦p¦ó¤À§O­pºâ¥X12', 13' , 14', 15'¦~ªº¤U³æÁ`¼Æ¶q

½Ð±Ðµ{¦¡¼gªk:

¨Ì®Æ¸¹·j´M, ´M§ä¥X "data" ¤u§@ªí¤¤
1. ¤À§O­pºâ¥X12', 13' , 14', 15'¦~ªº¤U³æÁ`¼Æ¶q
2.  §ä¥X³o­Ó®Æ¸¹ªº²Ä¤@¦¸¤U³æ¤é´Á
3.  §ä¥X³o­Ó®Æ¸¹ªº²Ä¤@¦¸¤U³æªº«È¤á¦WºÙ
[attach]20451[/attach]

·PÁÂ.

test file.rar (14.84 KB)

fangac

¦^´_ 1# fangsc
¬O¸Õ¬Ý
  1. Option Explicit
  2. Sub Ex()
  3.     Dim AR, Rng(1 To 3) As Range, i As Integer, C As Integer, Sp As String
  4.     With Sheets("¤u§@ªí1").UsedRange.Columns("B:H")
  5.         AR = .Value
  6.         .Offset(1, 1) = ""       '
  7.         For i = 2 To .Rows.Count ' UBound(AR) ¤]¥i¥H
  8.             With Sheets("Data")
  9.                 .AutoFilterMode = False    '¨ú®ø¦Û°Ê¿z¿ï
  10.                 C = 0
  11.                 Set Rng(1) = Sheets("¤u§@ªí1").[C1]  '¦~«×
  12.                 Do While UBound(Split(Rng(1).Offset(, C), "'")) > 0
  13.                     .[a1].AutoFilter Field:=3, Criteria1:=AR(i, 1)  '¦Û°Ê¿z¿ï:®Æ¸¹·Ç«h
  14.                     If .[D1].End(xlDown).Row <> .Rows.Count Then
  15.                         Sp = Split(Rng(1).Offset(, C), "'")(0)
  16.                         '¦Û°Ê¿z¿ï:¦~«×·Ç«h
  17.                         .[a1].AutoFilter Field:=5, Criteria1:=">=20" & Sp & "/1/1", Operator:=xlAnd, Criteria2:="<=20" & Sp & "/12/31"
  18.                         If .[D1].End(xlDown).Row <> Rows.Count Then '¦³¸ê®Æ
  19.                             '¥[Á`:?¦~«×¤U³æ¼Æ¶q
  20.                             AR(i, 2 + C) = Application.Sum(.Columns("D:D").SpecialCells(xlCellTypeVisible))
  21.                             Set Rng(2) = .UsedRange.SpecialCells(xlCellTypeVisible)
  22.                             If Rng(2).Areas(1).Rows.Count > 1 Then
  23.                                 Set Rng(3) = Rng(2).Areas(1).Range("B1")
  24.                             Else
  25.                                 Set Rng(3) = Rng(2).Areas(2).Range("B1")
  26.                             End If
  27.                             If AR(i, 6) = "" Then AR(i, 6) = Rng(3).Offset(, 3)  '²Ä¤@¦¸¤U³æ¤é´Á
  28.                             If AR(i, 7) = "" Then AR(i, 7) = Rng(3)              '²Ä¤@¦¸¤U³æ«È¤á
  29.                         End If
  30.                     End If
  31.                     C = C + 1
  32.                     Set Rng(1) = Rng(1).Offset(, C)
  33.                     .AutoFilterMode = False
  34.                 Loop
  35.             End With
  36.         Next
  37.         .Value = AR
  38.     End With
  39. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 2# GBKEE
Dear ª©¥D,
ÁÂÁ§A. «Ý§Ú¦n¦n¬ã¨s²z¸Ñ¤@¤U, ¦³¤°»ò°ÝÃD¦A½Ð±Ð±z.
fangac

TOP

        ÀR«ä¦Û¦b : ·R¤£¬O­n¨D¹ï¤è¡A¦Ó¬O­n¥Ñ¦Û¨­ªº¥I¥X¡C
ªð¦^¦Cªí ¤W¤@¥DÃD