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

[µo°Ý] ±N¦hµ§¦P³æ¸¹ªº¸ê®Æ©ñ¤J¤@­ÓÀx¦s®æ¤º,¸ê®Æ¤£­«½Æ¤Î¦h±ø¥ó¥[Á`

[µo°Ý] ±N¦hµ§¦P³æ¸¹ªº¸ê®Æ©ñ¤J¤@­ÓÀx¦s®æ¤º,¸ê®Æ¤£­«½Æ¤Î¦h±ø¥ó¥[Á`

½Ð°Ýª©¤W°ª¤â,
1.½Ð°Ý¦³¥i¯à°µ¨ì±N¦hµ§¦P³æ¸¹ªº¸ê®Æ©ñ¤J¤@­ÓÀx¦s®æ¤º,µM«á¸ê®Æ¤£­«½Æ(¦p¹Ï¤@)


2.¹Ï¤G ªºªí¦p¦ó¼g¥[Á`VBA?
Report.zip (6.78 KB)
learner

¦^´_ 1# yliu
¸Õ¸Õ¬Ý
  1. Option Explicit
  2. Sub EX_1()   'ªí1ªºµ{¦¡
  3.     Dim ­q³æ¸¹½X As String, ½ÐÁʳ渹 As String, ½ÐÁʼt°Ó As String
  4.     Dim AR(1 To 6), i As Integer
  5.     With Sheets("report")
  6.         ­q³æ¸¹½X = .[B5]
  7.         ½ÐÁʳ渹 = .[D5]
  8.         ½ÐÁʼt°Ó = .[B6]
  9.         With Sheets("final")
  10.             i = 2
  11.             Do While .Cells(i, "A") <> ""
  12.                 If .Cells(i, "v").Value = ­q³æ¸¹½X And .Cells(i, "F") = ½ÐÁʳ渹 And .Cells(i, "L") = ½ÐÁʼt°Ó Then
  13.                     AR(1) = .Cells(i, "j")                      '«~¦W
  14.                     AR(2) = AR(2) & IIf(AR(2) = "", "", ",") & .Cells(i, "k") '³W®æ
  15.                     AR(3) = .Cells(i, "i")                      '·|­p¬ì¥Ø
  16.                     AR(4) = .Cells(i, "b")                      '±ÄÁʩʽè
  17.                     AR(5) = AR(5) + .Cells(i, "m")                    'User½ÐÁÊ»ù
  18.                     AR(6) = .Cells(i, "c")                  '±ÄÁÊÃþ§O
  19.                 End If
  20.                 i = i + 1
  21.             Loop
  22.         End With
  23.         .[B7] = AR(1)
  24.         .[B8] = AR(2)
  25.         .[B9] = AR(3)
  26.         .[D9] = AR(4)
  27.         .[B10] = AR(5)
  28.         .[D10] = AR(6)
  29.      End With
  30. End Sub
  31. Sub EX_2()  'ªí1ªºµ{¦¡
  32.     Dim d As Object, KEY, i As Integer, AR(), A(1 To 4), ­q³æ¸¹½X As String
  33.     Set d = CreateObject("SCRIPTING.DICTIONARY")                   '¦r¨åª«¥ó Scripting.Dictionary
  34.     ­q³æ¸¹½X = Sheets("report").[B5]
  35.     With Sheets("record")
  36.         .AutoFilterMode = False                                     '¨ú®ø ¤u§@ªíªº¦Û°Ê¿z¿ï
  37.             i = 2
  38.             Do While .Cells(i, "A") <> ""
  39.                 If .Cells(i, "P").Value = ­q³æ¸¹½X Then             '¤ñ¹ï ­q³æ¸¹½X
  40.                     If d.exists(.Cells(i, "C").Value) = False Then d(.Cells(i, "C").Value) = .Cells(i, "C")
  41.                 End If
  42.                 i = i + 1
  43.             Loop
  44.             ReDim AR(1 To d.Count)                                  '­«¸m°}¦Cªº¤¸¯À¤W­­=¦r¨åª«¥óªº­p¼Æ(Count)
  45.            .Range("A1").AutoFilter 16, ­q³æ¸¹½X                     'AutoFilter ¦Û°Ê¿z¿ï ²Ä16Äæ «ü©w±ø¥ó­È=­q³æ¸¹½X
  46.            i = 1
  47.            For Each KEY In d.KEYS
  48.             .Range("A1").AutoFilter 3, KEY                          'AutoFilter ¦Û°Ê¿z¿ï ²Ä3Äæ «ü©w±ø¥ó­È=¦r¨åª«¥óªºKEY
  49.             A(1) = KEY                                                             '±ÄÁʼt°Ó
  50.             A(2) = Application.Sum(.Range("M:M").SpecialCells(xlCellTypeVisible))  '²Ä1¦¸Ä³»ù
  51.             A(3) = Application.Sum(.Range("N:N").SpecialCells(xlCellTypeVisible))  '²Ä2¦¸Ä³»ù
  52.             A(4) = Application.Sum(.Range("O:O").SpecialCells(xlCellTypeVisible))  '²Ä3¦¸Ä³»ù
  53.             AR(i) = A
  54.             i = i + 1
  55.         Next
  56.     End With
  57.     Sheets("report").[B13].Resize(4, 3) = Application.WorksheetFunction.Transpose(AR) '¾É¤J
  58. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 2# GBKEE

·PÁÂGBKEEªº¸Ñµª.µ{¦¡½X¥i¥H¨Ï¥Î,
¥u¬O·Q¦A°Ý¤@¤U, ¦³¨S¦³¥i¯à¥i¥H°µ¨ìŪ¨ú²Ä1µ§§Ç¸¹ªº«~¦W®É,´N©ñ¤J"report" Àx¦s®æ[B7]¡AŪ¨ú²Ä2µ§§Ç¸¹ªº«~¦W®É,¦pªG«~¦W»P²Ä1µ§§Ç¸¹ªº«~¦W¤£¤@¼Ë®É¤]©ñ¤J"report" Àx¦s®æ[B7]¡AŪ¨ú²Ä3µ§§Ç¸¹ªº«~¦W®É¦pªG«~¦W»P²Ä1µ§§Ç¸¹©Î²Ä2µ§§Ç¸¹«~¦W¬Û¦P®É,´N¤£©ñ¤J"report" Àx¦s®æ[B7].
ÁÙ¬O»¡, ¥u¯à°µ¨ì´N¥u¯à°÷¨ú³Ì«á¤@µ§¸ê®Æ©ñ¤J"report" Àx¦s®æ[B7]¡A­n¤£µM´N¬O3µ§§Ç¸¹ªº¸ê®Æ¬Ò©ñ¤JÀx¦s®æ(¦p³W®æªºÄæ¦ì,Àx¦s®æ[B8]¨º¼Ë).
³Â·Ð§A¤F,ÁÂÁÂ!
learner

TOP

¦^´_ 3# yliu
  1. Do While .Cells(i, "A") <> ""
  2.                 If .Cells(i, "v").Value = ­q³æ¸¹½X And .Cells(i, "F") = ½ÐÁʳ渹 And .Cells(i, "L") = ½ÐÁʼt°Ó Then
  3.                       '**********************************************************
  4.                     If AR(1) = "" Then
  5.                         AR(1) = .Cells(i, "J")                                                     '«~¦W
  6.                     Else
  7.                         M = Application.Match(.Cells(i, "J"), Split(AR(1), ","), 0)                 '´M§ä¬Û¦Pªº«~¦W
  8.                         If IsError(M) Then AR(1) = AR(1) & "," & .Cells(i, "J")                     '´M§ä¤£¨ì®É Match¶Ç¦^ ¿ù»~­È
  9.                     End If
  10.                  '*********************************************************   
  11.                     AR(2) = AR(2) & IIf(AR(2) = "", "", ",") & .Cells(i, "k") '³W®æ
  12.                     AR(3) = .Cells(i, "i")                      '·|­p¬ì¥Ø
  13.                     AR(4) = .Cells(i, "b")                      '±ÄÁʩʽè
  14.                     AR(5) = AR(5) + .Cells(i, "m")                    'User½ÐÁÊ»ù
  15.                     AR(6) = .Cells(i, "c")                  '±ÄÁÊÃþ§O
  16.                 End If
  17.                 i = i + 1
  18.             Loop
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 4# GBKEE

·PÁÂGBKEEª©¤j,
§A¹ê¦b¤Ó¼F®`¤F, ³oµ{¦¡½X§¹¥þ²Å¦X§Ú·Q­nªºªF¦è,¸U¤À·PÁÂ~
learner

TOP

¦^´_ 4# GBKEE

GBKEEª©¤j,
¡§final¡¨¤u§@ªí¸ê®Æ¥u¦³1µ§­q³æ¸¹½X®É,¥i¥H°õ¦æ
«á¨Ó,§Ú¥[¤F²Ä2µ§­q³æ¸¹½X¸ê®Æ«á,°õ¦æ«o¥X²{:
°õ¦æ¶¥¬q¿ù»~9
°}¦C¯Á¤Þ¶W¥X½d³ò
°»¿ù¦b:
ReDim AR2(1 To d.Count)       '­«¸m°}¦Cªº¤¸¯À¤W­­=¦r¨åª«¥óªº­p¼Æ(Count)

½Ð°Ý¬O¤°»ò­ì¦]?
learner

TOP

¦^´_ 6# yliu
¤W¶ÇÀɮ׬ݬÝ
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 7# GBKEE

GBKEEª©¤j,
³Â·Ð½Ð§AÀ°§Ú¬Ý¤@¤UÀÉ®×,°ÝÃD¥X¦b­þ¸Ì. ÁÂÁÂ!

Report.zip (23.22 KB)
learner

TOP

¦^´_ 8# yliu
Àˬd¤@¤U:dicªº­Ó¼Æ,¦p¬°0®É­n¦³if ªº§PÂ_¦¡.
  1. MsgBox dic.Count            
  2.             ReDim AR2(1 To dic.Count)                                  '­«¸m°}¦Cªº¤¸¯À¤W­­=¦r¨åª«¥óªº­p¼Æ(Count)
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 9# GBKEE

ÁÂÁÂGBKEEªº«ü¾É,
¥[¤F If dic.count=0 ªº§PÂ_¦¡,¤w¸gok¤F,ÁÂÁÂ.
learner

TOP

        ÀR«ä¦Û¦b : ¤@­Ó¤Hªº§Ö¼Ö¡D¤£¬O¦]¬°¥L¾Ö¦³±o¦h¡A¦Ó¬O¦]¬°¥L­p¸û±o¤Ö¡C
ªð¦^¦Cªí ¤W¤@¥DÃD