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

[µo°Ý] ½Ð°Ý¤é»ù®æ«ç»òÂàÅܦ¨¶g»ù®æ©O?

[µo°Ý] ½Ð°Ý¤é»ù®æ«ç»òÂàÅܦ¨¶g»ù®æ©O?

¤£ª¾¹D³o¯à¥Î¤½¦¡¸Ñ¨M¶Ü?ÁÙ¬O­n¼gµ{¦¡½X¤~¯à§¹¦¨©O?

Book.rar (9.16 KB)

¤u¨ã¡÷³]©w¤Þ¥Î¶µ¥Ø¡÷Microsoft ActiveX Data Objects 2.8 Library

¥Î SQL¨Ó¸Ñ¨M¤éÂà¶g¡BÂà¤ë¡BÂà©u......ÂàÀÉ°ÝÃD
  1. Sub ¤é½uÂà¶g½u()

  2.    '«Ø¥ß¤é´Á»P¦~¶g¹ï·Ó¦r¨åÀÉ
  3.     Dim d
  4.     Set d = CreateObject("Scripting.Dictionary")
  5.     Dim c As Range
  6.     For Each c In Sheets("¤é»ù®æ").Range("A2:A" & Sheets("¤é»ù®æ").[A2].End(xlDown).Row)
  7.    
  8.        '±N¤é´ÁÂର¦~¶g¡A¨Ò¦p201215ªí¥Ü2012¦~²Ä15¶g
  9.         yyyyww = Year(c.Value) & Format(DatePart("ww", c.Value), "00")
  10.         
  11.        'Àˬd¦~¶g¬O§_¦b¦r¨åÀɤ¤¡A­Y¤£¦s¦b«h¥[¤J
  12.         If Not d.Exists(yyyyww) Then
  13.             d.Add yyyyww, c.Value
  14.         End If
  15.     Next

  16.    '§R°£¡i©P»ù®æ2¡j¤u§@ªíº[¦sªº¸ê®Æ
  17.     With Sheets("©P»ù®æ2")
  18.         .[A1:E1].Value = Sheets("¤é»ù®æ").[A1:E1].Value
  19.         .Activate
  20.         .Rows("2:" & .[A2].End(xlDown).Row).ClearContents
  21.     End With
  22.    
  23.    '«Ø¥ßADODB Connectionª«¥óÅܼÆ
  24.     Dim cn As ADODB.Connection
  25.     Set cn = New ADODB.Connection
  26.    
  27.     With cn
  28.         .Provider = "MSDASQL"
  29.         .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
  30.          "DBQ=" & ThisWorkbook.FullName & ";"
  31.         .Open
  32.     End With
  33.    
  34.    'SQL¦r¦ê
  35.     mySQL = "Select ¦~¶g,FIRST(¶}½L»ù), MAX(³Ì°ª»ù), MIN(³Ì§C»ù), LAST(¦¬½L»ù) From ((SELECT (YEAR(¤é´Á)& FORMAT(DATEPART('ww',¤é´Á),'00')) AS ¦~¶g, ¶}½L»ù, ³Ì°ª»ù, ³Ì§C»ù, ¦¬½L»ù FROM [¤é»ù®æ$A:E] WHERE ¤é´Á IS NOT NULL) tmpTable) GROUP BY ¦~¶g"
  36.    
  37.     Set rs = cn.Execute(mySQL)

  38.     With Sheets("©P»ù®æ2")
  39.         .Activate
  40.         .Range("A2").CopyFromRecordset rs
  41.     End With
  42.    
  43.    '±N¦~¶gÂର¸Ó¶g²Ä¤@­Ó¥æ©ö¤é´Á
  44.     For Each c In Sheets("©P»ù®æ2").Range("A2:A" & Sheets("©P»ù®æ2").[A2].End(xlDown).Row)
  45.         c.Value = d.Item(c.Value)
  46.     Next
  47.    
  48.    'Ãö³¬³s½u²M°£°O¾ÐÅé
  49.     cn.Close
  50.     Set cn = Nothing
  51.    
  52.     MsgBox "ÂàÀɧ¹¦¨!"

  53. End Sub
½Æ»s¥N½X
diabo

TOP

¦^´_ 11# c_c_lai
¦^´_ 10# GBKEE
¨S¦³·Q¨ì¦³·sªºª©¥»¥X²{,ÁöµM§ÚµLªk¬Ý¨ìªø¤°»ò¼Ë¤l¤]ÁÂÁ¨â¦ìªº¥[±j

TOP

¦^´_ 10# GBKEE
ÁÂÁ«ü¾É¡I
¥Ø«e§Ú¹ï©ó Set Rng ªºÀ³¥Î©|¥¼¤Q¤À±E±x¡A¥i¯à¬O¥H©¹¨S±µÄ²¹LExcel
ªº½t¬G¡C §Ú·|¦A¥[±j³o¤è­±ªºÀ³¥Î¡A ÁÂÁ±z¡I

TOP

¦^´_ 9# c_c_lai
¥[¤W´Á¶¡³o¤£¿ù°Ú ,¦ý¥i¤£»Ý·s¼WÅܼƨÓÅã¥Ü.   
AR(6, xAr) = scope & "-" & .Cells(xi, "A")   ->      AR(6, xAr) = Rng.Cells(1) & "-" & .Cells(xi, "A")

TOP

¦^´_ 5# GBKEE
¦^´_ 8# jovi0801
§Ú¥[¤W¤F¤@Äæ "´Á¶¡" (scope) ¦p¦¹¥i¥H²M·¡¦a¬Ý¥X¥¦­ÌªºÂkÄÝ¡C
¯Â°Ñ¦Ò¡A§Æ±æ GBKEE ¤j¤j²ö¤¶·N¡C
  1. Sub Ex()                           ' DatePart("WW", .Rows(xi).Cells(1))  ¶Ç¦^²Ä´X¶g
  2.     Dim AR, xi As Integer, xAr As Integer, Rng As Range, scope As String
  3.    
  4.     With Sheets("¤é»ù®æ")
  5.         AR = Application.Transpose(.Range("A1").CurrentRegion.Rows(1).Value)     ' ¨ú±oÄæ¦ì
  6.         xAr = 2
  7.         xi = 2
  8.         ReDim Preserve AR(1 To 6, 1 To xAr)                      ' ·s¼W¤@ºûªÅ¥Õ°}¦C
  9.         
  10.         Set Rng = .Cells(xi, "A")                                ' ¤@¶gÀç·~ªº²Ä¤@¤Ñ¤é´Á¦ì¸m
  11.         scope = .Cells(xi, "A")
  12.         
  13.         Do While .Cells(xi, "A") <> ""
  14.             If DatePart("WW", .Cells(xi, "A")) <> DatePart("WW", .Cells(xi + 1, "A")) Then
  15.                 Set Rng = Range(Rng, .Cells(xi, "E"))            ' ¤@¶gÀç·~ªº²Ä¤@¤Ñ¤é´Á¦ì¸m  ¨ì  ³Ì«á²Ä¤@¤Ñ¦¬½L»ù¦ì¸m
  16.                 AR(1, xAr) = Rng.Cells(1)           ' ¤é´Á  Rng.Cells(1) ¤é´Á: ¶g¤@  ©Î .Cells(xi, "A") ¤é´Á: ¶g¤­(³Ì«á¤@¤Ñ)
  17.                 AR(2, xAr) = Rng.Cells(1, 2)                     ' ¶}½L»ù
  18.                 AR(3, xAr) = Application.Max(Rng.Columns(3))     ' ³Ì°ª»ù
  19.                 AR(4, xAr) = Application.Min(Rng.Columns(4))     ' ³Ì§C»ù
  20.                 AR(5, xAr) = .Cells(xi, "E")                     ' ¦¬½L»ù
  21.                 AR(6, xAr) = scope & "-" & .Cells(xi, "A")
  22.                
  23.                 If .Cells(xi + 1, "A") <> "" Then
  24.                     Set Rng = .Cells(xi + 1, "A")
  25.                     xAr = xAr + 1
  26.                     scope = .Cells(xi + 1, "A")
  27.                     ReDim Preserve AR(1 To 6, 1 To xAr)
  28.                 End If
  29.             End If
  30.             xi = xi + 1
  31.         Loop
  32.     End With
  33.    
  34.     With Sheets("©P»ù®æ")
  35.         .UsedRange.Clear
  36.         .[A1].Resize(xAr, 6) = Application.Transpose(AR)
  37.     End With
  38. End Sub
½Æ»s¥N½X
¤é»ù®æ«ç»òÂàÅܦ¨¶g»ù®æ.rar (9.85 KB)

TOP

¦^´_ 6# Hsieh
ÁÂÁÂHsieh¶W¯Åª©¥Dªº´£¿ô,¦ý®M¥Î±zªºµ{¦¡½X,·|¥X²{ª«¥ó¤£¤ä´©¦¹ÄݩʩΤèªkªº°T®§,¦ÓGBKEEª©¥D©Ò¼gªºµ{¦¡½X,¦n¹³¯à¹F¨ì±z©Ò»¡ªº®ÄªG,¦pªþ¥ó Book.rar (10.13 KB)

TOP

¦^´_ 5# GBKEE
¦A¦¸·PÁÂGBKEEª©¥Dªº¨ó§U,¸Ñ¨M§Úªº°ÝÃD

TOP

¦^´_ 4# jovi0801
¦pªG³o¬O¥æ©ö¬ö¿ý¡A¤£À³¸Ó§PÂ_©P¤@»P©P¤­¬°°Ï¶¡
¦]¬°¦³¥i¯à¹J¨ì°²¤é¥ð¥«¡A¥H©P§O§P©w¤£ª¾¬O§_¤ñ¸û¥¿½T?
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. Set d1 = CreateObject("Scripting.Dictionary")
  4. With Sheet1
  5. d1(1) = Array(.[A1].Value, .[B1].Value, .[C1].Value, .[d1].Value, .[E1].Value)
  6. For Each a In .Range(.[A2], .[A2].End(xlDown))
  7. w = Year(a) & ":" & Application.WorksheetFunction.WeekNum(a)
  8. If IsEmpty(d(w & "¶}")) Then d(w & "¶}") = a.Offset(, 1).Value
  9. If a.Offset(, 2) > d(w & "°ª") Then d(w & "°ª") = a.Offset(, 2).Value
  10. If IsEmpty(d(w & "§C")) Then
  11. d(w & "§C") = a.Offset(, 3).Value
  12. ElseIf d(w & "§C") > a.Offset(, 3) Then
  13. d(w & "§C") = a.Offset(, 3).Value
  14. End If
  15. d(w & "¦¬") = a.Offset(, 4).Value
  16. d1(w) = Array(a.Value, d(w & "¶}"), d(w & "°ª"), d(w & "§C"), d(w & "¦¬"))
  17. Next
  18. End With
  19. With Sheet2
  20. .Cells = ""
  21. .[A1].Resize(d1.Count, 5) = Application.Transpose(Application.Transpose(d1.items))
  22. End With
  23. End Sub
½Æ»s¥N½X
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2012-7-10 16:02 ½s¿è

¦^´_ 4# jovi0801
  1. Sub Ex() 'DatePart("WW", .Rows(xi).Cells(1))  ¶Ç¦^²Ä´X¶g
  2.     Dim AR, xi As Integer, xAr As Integer, Rng As Range
  3.     With Sheets("¤é»ù®æ")
  4.         AR = Application.Transpose(.Range("A1").CurrentRegion.Rows(1).Value)         '¨ú±oÄæ¦ì
  5.         xAr = 2
  6.         xi = 2
  7.         ReDim Preserve AR(1 To 5, 1 To xAr)                             '·s¼W¤@ºûªÅ¥Õ°}¦C
  8.         Set Rng = .Cells(xi, "A")                                       '¤@¶gÀç·~ªº²Ä¤@¤Ñ¤é´Á¦ì¸m
  9.         Do While .Cells(xi, "A") <> ""
  10.             If DatePart("WW", .Cells(xi, "A")) <> DatePart("WW", .Cells(xi + 1, "A")) Then
  11.                 Set Rng = Range(Rng, .Cells(xi, "E"))                   '¤@¶gÀç·~ªº²Ä¤@¤Ñ¤é´Á¦ì¸m  ¨ì  ³Ì«á²Ä¤@¤Ñ¦¬½L»ù¦ì¸m
  12.                 AR(1, xAr) = Rng.Cells(1)                               '¤é´Á  Rng.Cells(1) ¤é´Á: ¶g¤@  ©Î .Cells(xi, "A") ¤é´Á: ¶g¤­(³Ì«á¤@¤Ñ)
  13.                 AR(2, xAr) = Rng.Cells(1, 2)                            '¶}½L»ù
  14.                 AR(3, xAr) = Application.Max(Rng.Columns(3))            '³Ì°ª»ù
  15.                 AR(4, xAr) = Application.Min(Rng.Columns(4))             '³Ì§C»ù
  16.                 AR(5, xAr) = .Cells(xi, "E")                            '¦¬½L»ù
  17.                 If .Cells(xi + 1, "A") <> "" Then
  18.                     Set Rng = .Cells(xi + 1, "a")
  19.                     xAr = xAr + 1
  20.                     ReDim Preserve AR(1 To 5, 1 To xAr)
  21.                 End If
  22.             End If
  23.             xi = xi + 1
  24.         Loop
  25.     End With
  26.     With Sheets("©P»ù®æ")
  27.         .UsedRange.Clear
  28.         .[A1].Resize(xAr, 5) = Application.Transpose(AR)
  29.     End With
  30. End Sub
½Æ»s¥N½X

TOP

        ÀR«ä¦Û¦b : ¦a¤WºØ¤Fµæ¡A´N¤£©öªø¯ó¡F¤ß¤¤¦³µ½¡A´N¤£©ö¥Í´c¡C
ªð¦^¦Cªí ¤W¤@¥DÃD