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

½Ð°Ý¦p¦ó¦b¸ê®ÆÀɦU¤u§@ªí°µ¾ã²z¦b¬d¸ßÀÉÅã¥Ü¥X¨Ó?

½Ð°Ý¦p¦ó¦b¸ê®ÆÀɦU¤u§@ªí°µ¾ã²z¦b¬d¸ßÀÉÅã¥Ü¥X¨Ó?

¥»©«³Ì«á¥Ñ flask ©ó 2011-8-22 19:09 ½s¿è

½Ð°Ý¦p¦ó¦b¦h­Ó¤u§@ªí±N­nªº¸ê®ÆÅã¥Ü¥X¨Ó?,§Ú§ä¤@­Ó¤u§@ªí¥i¥HÅã¥Ü,¦ý¦h­Ó¤u§@ªí
´N¤£ª¾¹D¦p¦ó¥Î°}¦C³B²z,·Ð½Ð¤j¤j¸Ñ´b!
        With Sheets(c)
                    n = .[A65536].End(xlUp).Row
                    arr = .Range(.[A1], .Cells(n, 6))
                   ReDim arr2(1 To 5, 1 To UBound(arr)) '¦bµ{§Ç¼h¦¸¤¤¥Î¨Ó­«·s°t¸m°ÊºA°}¦CÅܼƪºÀx¦sªÅ¶¡
                         Set d = CreateObject("scripting.dictionary")
                         For i = 2 To n
                         chk = Mid(arr(i, 1), 1, 3) '¹ï¼t°Ó½s¸¹°µ§P©w
                          If stcode = chk Then
                           x = arr(i, 4) - arr(i, 5)
                           b = Array(arr(i, 1), arr(i, 2), arr(i, 4), arr(i, 5), x)
                               If Not d.exists(arr(i, 1)) Then
                                   M = M + 1
                                   d(arr(i, 1)) = M
                               For j = 1 To 5
                                   arr2(j, M) = b(j - 1)
                               Next
      
                          Else
                              For j = 3 To 5
                                   arr2(j, d(arr(i, 1))) = arr2(j, d(arr(i, 1))) + b(j - 1)
                              Next
                          End If
                          Else
                          End If
                          Next
                  End With
A.rar (16.83 KB) B08.rar (9.42 KB)

testa.rar (8.97 KB)

sFName = "C:\¸ê®Æ®w\" & tdate & "¤ë\" & stcok & "" & fdate & ".xls" ' «ü©w¬d§äÀɮ׸ô®|¥Ø¿ý"
              Workbooks.Open Filename:=sFName, ReadOnly:=True ' ¶}ÀÉ
              p = Sheets.Count
              Do
                With Sheets(p)
                    n = .[A65536].End(xlUp).Row
                    arr = .Range(.[A1], .Cells(n, 6))
                   ReDim arr2(1 To 5, 1 To UBound(arr)) '¦bµ{§Ç¼h¦¸¤¤¥Î¨Ó­«·s°t¸m°ÊºA°}¦CÅܼƪºÀx¦sªÅ¶¡
                         Set d = CreateObject("scripting.dictionary")
                              
                          For i = 2 To n
                         chk = Mid(arr(i, 1), 1, 3)
                          If stcode = chk Then
                           x = arr(i, 4) - arr(i, 5)
                          b = Array(arr(i, 1), arr(i, 2), arr(i, 4), arr(i, 5), x)
            
                          If Not d.exists(arr(i, 1)) Then
                                   M = M + 1
                                   d(arr(i, 1)) = M
                               For j = 1 To 5
                                   arr2(j, M) = b(j - 1)
                               Next
                          Else
                              For j = 3 To 5
                          arr2(j, d(arr(i, 1))) = arr2(j, d(arr(i, 1))) + b(j - 1)
                              Next
                          End If
                          Else
                          End If
                          Next
                        
               End With
               On Error Resume Next
               irow = wbook.[A65536].End(xlUp).Row
            wbook.Range("A" & irow + 1).Resize(M, 5) = Application.Transpose(arr2)
                p = p - 1: M = 0
                Loop While p > 0
               
             Application.DisplayAlerts = False
             ActiveWorkbook.Close SaveChanges:=False
             Sheets("Web").Activate
                    n = [A65536].End(xlUp).Row
                    arr = Range([A2], Cells(n, 6))
                   ReDim arr2(1 To 5, 1 To UBound(arr))                           Set d = CreateObject("scripting.dictionary")
                             For i = 2 To n
                 b = Array(arr(i, 1), arr(i, 2), arr(i, 3), arr(i, 4), arr(i, 5))
            
                          If Not d.exists(arr(i, 1)) Then
                                   M = M + 1
                                   d(arr(i, 1)) = M
                               For j = 1 To 5
                                   arr2(j, M) = b(j - 1)
                               Next
                          Else
                              For j = 3 To 5
                          arr2(j, d(arr(i, 1))) = arr2(j, d(arr(i, 1))) + b(j - 1)
                              Next
                          End If
                          
                          Next
                 Range("g1").Resize(M, 5) = Application.Transpose(arr2)
¥Ø«e¥²¶·§â¦U¤u§@ªí³B²z§¹ªº¸ê®Æ©ñ¨ìsheet("web")ªº¤u§@ªí,¦A³B²z¤@¦¸
½Ð°Ý¦p¦ó³B²z¤@¦¸´N¦n,¹ï©ó°}¦C¸ê®Æ¯uªº«ÜÀYµh,·PÁ¤j¤j¯àÀ°§Ú¸Ñ´b!ÁÂÁµ½¤ß¤H¤h.

TOP

¦^´_ 1# flask
A,B ¨âÀɳ£­nªþ¤W¬Ý¬Ý,¤~·|ª¾¹D¦p¦óºc·Q

TOP

ÁÂÁÂGBKEE¤j¤j§Úªþ¤WAÀÉ»PB08ÀÉ,·PÁ§AªºÀ°¦£..

TOP

¦n¤ßªº¤j¤j¥i¥H²¤Æ¶Ü?¤£µM´£¥Ü¤@¤U¤]¥i¥H!ÁöµM¥i¥H¹F¨ì­n¨D¦ýÁ`ı±o©Ç©Çªº....

TOP

  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2. If Target.Column = 2 Then
  3.    If Target.Row > 4 And Target.Row < 15 Then
  4.    If ActiveCell <> "" Then
  5.    [E3] = ActiveCell.Value
  6.    Ex [C1], [E1], Target
  7.    Else
  8.    End If
  9.    End If
  10. End If
  11. End Sub
  12. Sub Ex(s As Date, t As Date, mystr)
  13. Dim Ay()
  14. Application.ScreenUpdating = False
  15. Set d = CreateObject("Scripting.Dictionary")
  16. With Workbooks.Open(ThisWorkbook.Path & "\B08.xls") '¨âÀɬ°¦P¤@¥Ø¿ý
  17. For Each sht In .Sheets
  18. d(sht.Name) = 1
  19. Next
  20. For i = s To t
  21. sh = Format(i, "yyyymmdd")
  22. If d.exists(sh) = True Then
  23. With .Sheets(sh)
  24.    For Each a In .Range(.[B2], .[B2].End(xlDown))
  25.    If InStr(a, mystr) > 0 Then
  26.    ar = Array(a.Offset(, -1).Value, a.Value, a.Offset(, 2).Value, a.Offset(, 3).Value, a.Offset(, 2).Value - a.Offset(, 3).Value)
  27.    ReDim Preserve Ay(x)
  28.    Ay(x) = ar
  29.    x = x + 1
  30.    End If
  31.    Next
  32. End With
  33. End If
  34. Next
  35. .Close
  36. End With
  37. With Sheet1
  38. .[E5:I65536] = ""
  39. If x > 0 Then .[E5].Resize(x, 5) = Application.Transpose(Application.Transpose(Ay))
  40. End With
  41. Application.ScreenUpdating = True
  42. End Sub
½Æ»s¥N½X
¦^´_ 5# flask
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¥»©«³Ì«á¥Ñ flask ©ó 2011-8-27 15:04 ½s¿è

¦^´_ 6# Hsieh

ÁÂÁÂHsieh ¶W¯Åª©¥D¯uªºÂ²¼ä¦n¦h,¦ý¬O¦U¤u§@­¶¨S°µ¥[Á`.
sshot-1.jpg
À³¸Ó¬O¹³³o¼Ë
sshot-3.jpg ,
¯uªº·PÁ§AªºÀ°¦£,ÁÙ¦³¥Î¼t°Ó¥N½X°µ§P§O¬O¦]¬°¼t°Ó¦WºÙ¦³ªº·|ªÅ¥Õ,³o­Ó
¨SÃö«Y§Úª¾¹D¦p¦ó¥Î,ÁÂÁ§A...

TOP

½Ð±Ð¦n¤ßªº¤j¤j,§Ú¥Î³o¼Ëªº¤è¦¡³B²z¦³¤@­Ó°ÝÃD;
·í¼t°Ó¥N½X¦³­^¤å¦rªº¤j¤p¼g®É·|§PÂ_¬O¤@¼Ë,¦p985M»P985m
·|§PÂ_¬O¬Û¦P,¤£ª¾¬O¤°»ò­ì¦]?
With .Sheets(sh)
    For Each a In .Range(.[a2], .[a2].End(xlDown))
    stcode = Mid(a, 1, 2)
      If stcode = mycode Then
        Set b = wbook.Columns("e").Find(a, lookat:=xlWhole)
                If b Is Nothing Then
                   wbook.Range("e" & l).Resize(, 2) = a.Resize(, 2).Value
                   wbook.Range("e" & l).Offset(, 2) = a.Offset(, 3).Value
                   wbook.Range("e" & l).Offset(, 3) = a.Offset(, 4).Value
                   l = l + 1
                Else
                   b.Offset(, 2) = a.Offset(, 3).Value + b.Offset(, 2)
                   b.Offset(, 3) = a.Offset(, 4).Value + b.Offset(, 3)
                End If
       Else
       End If
    Next
End With

TOP

¦^´_ 8# flask
MatchCase     ¿ï¾Ü©Êªº Variant¡C­Y«ü©w¬° True¡A«h·j´M®É¤j¤p¼gµø¬°¬Û²§¡C¹w³]­È¬° False¡C
Set b = wbook.Columns("e").Find(a, lookat:=xlWhole, MatchCase:=True)

¥t¤@¸Ñªk¥Î¶i¶¥¿z¿ï ±a¤J ¦h­«·Ç«h  ¨Ï¥Î¤u§@ªí¸ê®Æ®w¨ç¼Æ( DSUM )­pºâ¶i¥X³f

RE.A.z;s.rar (21.39 KB)

TOP

·PÁÂGBKEE ¤j¤j...ÁÂÁ§A.

TOP

        ÀR«ä¦Û¦b : ºw¤ô¦¨ªe¡C²É¦Ì¦¨ÅÚ¡A¤Å»´¤vÆF¡A¤Å¥Hµ½¤p¦Ó¤£¬°¡C
ªð¦^¦Cªí ¤W¤@¥DÃD