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

¡y¤w¸Ñ¨M¡z°}¦C¤ñ¸û¡A§ä¥X®t²§ªºÀx¦s®æ

¦^´_ 1# ko310kmo
  1. Dim A, B, TheTime As Date, AR, ¶}½L»ù
  2. Private Sub Worksheet_Calculate()
  3.     Dim E, i%
  4.     On Error GoTo t     '³B²z §Y®É¦¨¥æ»ù»P¦¨³æ¶q ½d³ò¨S¦³¿ù»~­È
  5.     If Not Range("C2", Range("D2").End(xlDown)).SpecialCells(xlCellTypeFormulas, xlErrors) Is Nothing Then
  6.         Exit Sub      '¦¹Àɮתì¶}©l³sµ²®É§Y±Ò°Ê­«ºâ ->¦ý¬O©|¦³¥¼³sµ²¨ìªºÀx¦s®æ·|¶Ç¦^¿ù»~­È
  7.     End If
  8. t:
  9.     A = Application.Transpose(Range("C2", Range("D2").End(xlDown)).Value)   '§Y®É¦¨¥æ»ù»P¦¨³æ¶q½d³ò°}¦C
  10.     If TheTime <> TimeSerial(Hour(Time), Minute(Time), 0) Then   '³]©w¨C¤ÀÄÁ¾ã
  11.         ReDim AR(2 To Range("b2").End(xlDown).Row, 1 To 6)
  12.         Ex
  13.         TheTime = TimeSerial(Hour(Time), Minute(Time), 0)
  14.     Else
  15.         Ex
  16.     End If
  17.     If IsEmpty(B) Then                      '¤ñ¹ï°}¦C¬°¸ê®Æ
  18.         For Each E In Range("b2", Range("b2").End(xlDown))
  19.             With Sheets(E.Text).Cells(Rows.Count, "j").End(xlUp)
  20.                 .Offset(1) = E(1, 2)        '°O¿ý¤U ¦¨¥æ»ù
  21.                 .Offset(1, 1) = E(1, 3)     '°O¿ý¤U ³æ¶q
  22.                 .Offset(1, 2).Resize(1, 6) = Application.Index(AR, E.Row - 1)  'Ū¨ú¤@¤ÀÄÁ¤ºªº¸ê®Æ
  23.             End With
  24.         Next
  25.     Else
  26.         For i = 1 To UBound(A, 2)
  27.             If A(1, i) <> B(1, i) Or A(2, i) <> B(2, i) Then        ' ¼i¬ù»ùªº(¦¨¥æ»ù©Î¦¨³æ¶q)¦³ÅÜ°Ê
  28.                 With Sheets([B2].Cells(i, 1).Text).Cells(Rows.Count, "j").End(xlUp)
  29.                     .Offset(1) = [B2].Cells(i, 2)       '°O¿ý¤U §Y®É¦¨¥æ»ù
  30.                     .Offset(1, 1) = [B2].Cells(i, 3)    '°O¿ý¤U ³æ¶q
  31.                     .Offset(1, 2).Resize(1, 6) = Application.Index(AR, i)  'Ū¨ú¤@¤ÀÄÁ¤ºªº¸ê®Æ
  32.                 End With
  33.             End If
  34.         Next
  35.     End If
  36.     B = A
  37. End Sub
½Æ»s¥N½X
  1. Sub Ex()   'Sheet1ªºµ{¦¡½X    §Aµo°Ýªº¨º½g [dde tick¸ê®ÆÂà´«¤ÀÄÁ¸ê®Æ]
  2.     '½Ð°Ý¦¬½L»ù¬O¦ó®Éªº»ù®æ
  3.     Dim i%
  4.     For i = 2 To [B1].End(xlDown).Row
  5.         If TheTime <> TimeSerial(Hour(Time), Minute(Time), 0) Then
  6.             AR(i, 1) = TimeSerial(Hour(Time), Minute(Time), 0)  '¨C¤ÀÄÁ®É¶¡
  7.             If IsEmpty(B) Then
  8.                 If IsEmpty(¶}½L»ù) Then ReDim ¶}½L»ù(2 To UBound(AR))
  9.                 ¶}½L»ù(i) = Cells(i, "C")       '¶}½L»ù
  10.             End If
  11.             AR(i, 2) = ¶}½L»ù(i)
  12.             AR(i, 3) = Cells(i, "C")  '¨C¤ÀÄÁªº³Ì°ª»ù
  13.             AR(i, 4) = Cells(i, "C")  '¨C¤ÀÄÁªº³Ì§C»ù
  14.            ' AR(i, 5) = Cells(i, "C")  '½Ð°Ý¦¬½L»ù¬O¦ó®Éªº»ù®æ
  15.             AR(i, 6) = Cells(i, "D")  '¨C¤ÀÄÁªº¦¨¥æ¶q
  16.         Else
  17.             AR(i, 3) = IIf(Cells(i, "C") > AR(i, 3), Cells(i, "C"), AR(i, 3)) '¨C¤ÀÄÁªº³Ì°ª»ù
  18.             AR(i, 4) = IIf(Cells(i, "C") < AR(i, 4), Cells(i, "C"), AR(i, 4)) '¨C¤ÀÄÁªº³Ì§C»ù
  19.            ' AR(i, 5) = Cells(i, "C")                                          '¨C¤ÀÄÁªº¦¬½L»ù
  20.             AR(i, 6) = AR(i, 6) + Cells(i, "D")                              '¨C¤ÀÄÁªº¦¨¥æ¶q
  21.         End If
  22.     Next
  23. End Sub
½Æ»s¥N½X

TOP

¦^´_ 5# ko310kmo
¥þ³¡¸m©óSheet1
Calculate¨Æ¥ó ¬O¤u§@ªíªº¹w³]¨Æ¥ó
³o­ÓExµ{§Ç ¬O¨Ì©ñ¦bSheet1ª«¥óªº¼Ò²Õ©Ò¼gªº

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2011-5-12 10:52 ½s¿è

¦^´_ 9# ko310kmo
If TheTime <> TimeSerial(Hour(Time), Minute(Time), 0) Then
Àɮפ@°õ¦æ®É TheTime <> TimeSerial(Hour(Time), Minute(Time), 0)
°õ¦æ¤§«á¦³³]©w TheTime = TimeSerial(Hour(Time), Minute(Time), 0)
¸g®É¶¡¨ì¤U¤@¤ÀÄÁ«á TheTime <> TimeSerial(Hour(Time), Minute(Time), 0)
ReDim AR(2 To Range("b2").End(xlDown).Row, 1 To 6)
±N AR°}¦C ­«·sªì©l¤Æ  (Âk¹s)
.Offset(1, 3).Resize(1, 6) = Application.Index(AR, E.Row - 1)  'Ū¨ú¤@¤ÀÄÁ¤ºªº¸ê®Æ
AR°}¦C¬O¬ö¿ý¤@¤ÀÄÁ¤º¦U¼i¬ù»ùªº ®É¶¡, ¶}, °ª, §C, ¦¬, ¶q
½Ð°Ý[B2]¬O¤°»ò·N«ä
http://forum.twbts.com/viewthread.php?tid=2811&from=favorites
*******************************************************
­«·s­×§ï¸Õ¸Õ¬Ý ¦ý»P§Aªº´Á±æ©|¦³¶ZÂ÷
  1. Private Sub Worksheet_Calculate()
  2. Dim E, i%
  3. On Error GoTo t '³B²z §Y®É¦¨¥æ»ù»P¦¨³æ¶q ½d³ò¨S¦³¿ù»~­È
  4. If Not Range("C2", Range("D2").End(xlDown)).SpecialCells(xlCellTypeFormulas, xlErrors) Is Nothing Then
  5. Exit Sub '¦¹Àɮתì¶}©l³sµ²®É§Y±Ò°Ê­«ºâ ->¦ý¬O©|¦³¥¼³sµ²¨ìªºÀx¦s®æ·|¶Ç¦^¿ù»~­È
  6. End If
  7. t:
  8. A = Application.Transpose(Range("C2", Range("D2").End(xlDown)).Value) '§Y®É¦¨¥æ»ù»P¦¨³æ¶q½d³ò°}¦C
  9. If TheTime <> TimeSerial(Hour(Time), Minute(Time), 0) Then '³]©w¨C¤ÀÄÁ¾ã
  10. ReDim AR(2 To Range("b2").End(xlDown).Row, 1 To 6) '°}¦C ­«·sªì©l¤Æ (Âk¹s)
  11. ¶}½L»ù = Empty 'Åܼƪì©l¤Æ (Âk¹s)
  12. Ex
  13. If Not IsEmpty(B) Then
  14. For Each E In Range("b2", Range("b2").End(xlDown))
  15. Sheets(E.Text).Cells(Rows.Count, "j").End(xlUp).Offset(, 6) = B(1, E.Row - 1) '¤@¤ÀÄÁµ²§ô®Éªº»ù®æ
  16. Next
  17. End If
  18. TheTime = TimeSerial(Hour(Time), Minute(Time), 0)
  19. Else
  20. Ex
  21. End If
  22. If IsEmpty(B) Then '¤ñ¹ï°}¦C¬°¸ê®Æ
  23. For Each E In Range("b2", Range("b2").End(xlDown))
  24. With Sheets(E.Text).Cells(Rows.Count, "j").End(xlUp)
  25. .Offset(1) = E(1, 2) '°O¿ý¤U ¦¨¥æ»ù
  26. .Offset(1, 1) = E(1, 3) '°O¿ý¤U ³æ¶q
  27. .Offset(1, 2).Resize(1, 6) = Application.Index(AR, E.Row - 1) 'Ū¨ú¤@¤ÀÄÁ¤ºªº¸ê®Æ
  28. End With
  29. Next
  30. Else
  31. For i = 1 To UBound(A, 2)
  32. If A(1, i) <> B(1, i) Or A(2, i) <> B(2, i) Then ' ¼i¬ù»ùªº(¦¨¥æ»ù©Î¦¨³æ¶q)¦³ÅÜ°Ê
  33. With Sheets([B2].Cells(i, 1).Text).Cells(Rows.Count, "j").End(xlUp)
  34. .Offset(1) = [B2].Cells(i, 2) '°O¿ý¤U §Y®É¦¨¥æ»ù
  35. .Offset(1, 1) = [B2].Cells(i, 3) '°O¿ý¤U ³æ¶q
  36. .Offset(1, 2).Resize(1, 6) = Application.Index(AR, i) 'Ū¨ú¤@¤ÀÄÁ¤ºªº¸ê®Æ
  37. End With
  38. End If
  39. Next
  40. End If
  41. B = A
  42. End Sub
  43. Sub Ex() 'Sheet1ªºµ{¦¡½X §Aµo°Ýªº¨º½g [dde tick¸ê®ÆÂà´«¤ÀÄÁ¸ê®Æ]
  44. Dim i%
  45. If IsEmpty(¶}½L»ù) Then
  46. ReDim ¶}½L»ù(2 To UBound(AR))
  47. For i = 2 To [B1].End(xlDown).Row
  48. ¶}½L»ù(i) = Cells(i, "C")
  49. Next
  50. End If
  51. For i = 2 To [B1].End(xlDown).Row
  52. If TheTime <> TimeSerial(Hour(Time), Minute(Time), 0) Then
  53. AR(i, 1) = Time 'TimeSerial(Hour(Time), Minute(Time), 0) '®É¶¡
  54. AR(i, 2) = ¶}½L»ù(i) '¨C¤ÀÄÁ¶}½L»ù
  55. AR(i, 3) = Cells(i, "C") '¨C¤ÀÄÁªº³Ì°ª»ù
  56. AR(i, 4) = Cells(i, "C") '¨C¤ÀÄÁªº³Ì§C»ù
  57. AR(i, 6) = Cells(i, "D") '¨C¤ÀÄÁªº¦¨¥æ¶q
  58. Else
  59. AR(i, 1) = Time
  60. AR(i, 3) = IIf(Cells(i, "C") > AR(i, 3), Cells(i, "C"), AR(i, 3)) '¨C¤ÀÄÁªº³Ì°ª»ù
  61. AR(i, 4) = IIf(Cells(i, "C") < AR(i, 4), Cells(i, "C"), AR(i, 4)) '¨C¤ÀÄÁªº³Ì§C»ù
  62. 'AR(i, 5) = Cells(i, "C") '¨C¤ÀÄÁªº¦¬½L»ù
  63. AR(i, 6) = AR(i, 6) + Cells(i, "D") '¨C¤ÀÄÁªº¦¨¥æ¶q
  64. End If
  65. Next
  66. End Sub
½Æ»s¥N½X

TOP

¦^´_ 11# ko310kmo
Worksheet_Calculate ¨Æ¥ó ¬O·í¤u§@ªíªº¥ô¤@­Ó¤½¦¡©Ò¶Ç¦^ªº¼Æ­È¦³§ïÅܮɧY°õ¦æªºµ{¦¡
©Ò¥H§AªþÀÉ ok.5.10 ªºµ{¦¡½X·|¨Ï¥Î°j°é±NRange("B2:B" & M)½d³ò¤ºªº¤u§@ªí¤@¤@ªº¼g¤J¸ê®Æ
½Ð¦b°Ñ¦Ò 10¼Ó ªºµ{¦¡½X¸Õ¸Õ¬Ý ¦ý¥ÎWorksheet_Calculate¨Ó°O¿ýÁÙ¬O·|¦³»~®tªº
¦p¦¨¥æ»ù¤£ÅÜ   00:10:01®Éªº¦¨¥æ¶q¬O 10  ¤U¤@¦¸ªº¦¨¥æ¦b 00:10:11 ®Éªº¦¨¥æ¶q ÁÙ¬O 10
¦p¦¹Worksheet_Calculate ¬O¤£·|°õ¦æªº »~®t´N²£¥Í  , ©Ò¥H«Øij¦³ ¦¨¥æ»ù¤Î¦¨¥æ¶q ªº®É¶¡Äæ ¨Ó°Ñ¦Ò.

TOP

¦^´_ 14# ko310kmo
¦pªG§Ú¬O¥ý°õ¦ætest1¦A°õ¦ætest2¡A¨S¦³³]©wtest3,³o¼Ë¤ÀÄÁ¸ê®Æ¥u·|§ó·s²Ä¤@¹M¡C
¤£­n¥Îtest3¤F
test2 ³Ì«á¥[¤W
If Time <= #1:30:00 PM# Then Application.OnTime Now + TimeValue("00:01:00"), "test2"
End Sub

TOP

¦^´_ 17# ko310kmo
[B2] = [B2](1, 1) = [B2].Cells(1, 1) = Rrange("B2").cells(1,1) => [B2].Offset( 0 , 0 ) => Rrange("B2")
[B2](2, 3) = [B2].Cells(2, 3) =  Rrange("B2").cells(2,3) => Rrange("B2").Offset( 1, 2 )=>Rrange("D3")

TOP

        ÀR«ä¦Û¦b : ¤ß¤¤±`¦sµ½¸Ñ¡B¥]®e¡B·P«ä¡Bª¾¨¬¡B±¤ºÖ¡C
ªð¦^¦Cªí ¤W¤@¥DÃD