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

½Ð°Ý¦p¦ó§ï¦¨K´ÎÅã¥Ü?

¦^´_ 1# mead
XlChartType ¦CÁ|
«ü©w¹ÏªíÃþ«¬¡C
-------------------------------------------------------------
¦WºÙ                         ­È         ´y­z
xlStockOHLC         89         ¶}½L-³Ì°ª-³Ì§C-¦¬½LªÑ»ù¹Ï
xlStockVHLC         90         ¦¨¥æ¶q-³Ì°ª-³Ì§C-¦¬½LªÑ»ù¹Ï
xlStockVOHLC         91         ¦¨¥æ¶q-¶}½L-³Ì°ª-³Ì§C-¦¬½LªÑ»ù¹Ï
-------------------------------------------------------------
¦¹³Bªº"´y­z"«üªº¬O§A¥²¶·¬O¤W¦Cªº²Õ¦X¤~¯à¦¨¥ß«Ø¸mªº±ø¥ó¡A¨Ò¦p¡G
  1.     ActiveSheet.Shapes.AddChart.Select
  2.     With ActiveChart
  3.         .SetSourceData Source:=Range("¤u§@ªí1!$B$1:¤u§@ªí1!$B$" & totalRows & ", ¤u§@ªí1!$C$1:¤u§@ªí1!$F$" & totalRows)
  4.         .ChartType = xlStockOHLC
  5.         With .ChartGroups(1)
  6.              .AxisGroup = 1
  7.              .UpBars.Format.Fill.ForeColor.RGB = RGB(255, 69, 0)          ' ¾ï¬õ¦â
  8.              .DownBars.Format.Fill.ForeColor.RGB = RGB(0, 250, 170)     ' ²L¬vºñ¦â
  9.         End With
  10. . . . . . .
  11. End With
½Æ»s¥N½X

TOP

¦^´_ 3# mead
XlChartType ¦CÁ|ªº¹ÏªíÃþ«¬¥u¬O§i¶D§A¡A¦pªG­nø»s¥XªÑ²¼¹Ïªº¸Ü´N¥²¶·­n¦³¤W­zªº²Õ¦X±ø¥ó¤~¯à§Î¦¨¡A
´N§A¥Ø«eªº¤T­Ó¼ÐÃD¡G ¦hªÅ¤O¹D¡B¤Ï¦V¶Õ¤O¡B¥D¤O±±½L¡A¨ä¥»¨­¼Æ¾Ú³£¬O³æ¦V¼Æ¦C¡Aºc¤£¦¨ªÑ²¼¹Ïªº²Õ¦X±ø¥ó¡A
¥u¯à¥H¤@¯ë±`¥Îªº xlLine (§é½u¹Ï) ©ÎªÌ¬O¨ä¥¦¹Ï«¬¨ÓÀ³¥Î¡C
¦pªG§A¯u·Q¯à¥HªÑ²¼¹Ï¨Óªí¥Ü¡A§A´N¥²¶·±N¦hªÅ¤O¹D¡B¤Ï¦V¶Õ¤O¡B¥D¤O±±½Lµ¥©ó¸ê®Æ¶×¤J³B²z¦P®É¡A¤À§O±N¨ä¦U¦Ûªº
¦hªÅ¤O¹D¡B¤Ï¦V¶Õ¤O¡B¥D¤O±±½Lµ¥¤§¦hªÅ¤O¹D¶}½L»ù¡B¦hªÅ¤O¹D³Ì°ª»ù¡B¦hªÅ¤O¹D³Ì§C»ù¡B¦hªÅ¤O¹D¦¬½L»ù¤À§O
¬ö¿ý¨Ã¤©¥H¶×¤J¦Ü¤u§@ªí³æ¤º(¦p #2 ªºªí³æªþ¥ó¡F¦¨¥ßªº±ø¥ó¡B¥H¤ÎVBA»s§@ªº¤èªk)¡A¦p¦¹¤~¯à³B²zªÑ²¼¹Ïªº¤è®×¡C
¦p¦¹ªº»¡©ú¤£ª¾ÁA¸Ñ§_¡H

TOP

ÁÂÁ¦^ÂР ·P®¦
³o§Ú¤F¸Ñ !¦ý¦]§Ú¤T­ÓÄæ¦ì³£¬ODDE¸ê®Æ¹Bºâ¥X¨Óªº  ©Ò¥H¦b¤@¤ÀÄÁ¤º¤]¦³O/H/L/C
©Ò¥H§Ú­n ...
mead µoªí©ó 2012-5-25 22:11

ªþ¤W¦p¦ó²£¥Í¦hªÅ¤O¹Dªº O/H/L/C ¤§¤èªk¡A¨ä¾l¨â¶µ¥i¥H¥t¥~¨â²ÕÅܼƨӦP®É³B²z(¦p¤G¤§»¡©ú)¡G
(¤@)
  1. Option Explicit

  2. Dim timerEnabled As Boolean  '
  3. Dim counter As Single        ' ¥Ü½d¥Î­p¼Æ¾¹
  4. Dim Ov As Single, Hv As Single, Lv As Single, Cv As Single           ' ¶}½L»ù¡B³Ì°ª»ù¡B³Ì°ª»ù¡B¦¬½L»ù(¦¨¥æ»ù) µ¥³]©w¤§ÅܼơC
  5. Dim turnKey As Integer   ' §PÂ_¨C¤@½ü°j¤W¦CÅܼƪì©l­È¤§³]©w¡C
  6. Dim nums As Integer      ' ±N¨C¹j "¦h¤Ö®É¶¡" ³B²z®É¬q¡A²¾¨ì¦¹³B¨Ó³B²z¡C

  7. Private Sub Workbook_Open()
  8.     counter = 0

  9.     nums = 30            ' ³]©w¨C¹j 30 ¬í³B²z®É¬q¡A¥ç¥i§ó§ï¦¨ 10 (¨C¹j 10 ¬í)¡B20 (¨C¹j 20 ¬í)µ¥µ¥¡C
  10.                          ' ¦¹³B¤£«Øij¨Ï¥Î 1 ¬í®É¬q¨Ó³B²z¡A¦]¬°ÁÙ­n¥h¨D¥X¶}½L¡B³Ì°ª¡B³Ì§C¡B¦¨¥æ»ù¡C
  11.     timerEnabled = False
  12.     Call timerStart      ' µ{¦¡¤@±Ò©l¡A«K¥h¦Û°Ê°õ¦æ timerStart      
  13. End Sub

  14. Sub timerStart()
  15.     turnKey = 0          ' ¨C¤@½ü°j½L¤¤ªì©l­È¤§³]©w¡C

  16.     If timerEnabled Then
  17.         Application.OnTime (Now), "ThisWorkbook.ExeSelf"
  18.     Else
  19.         ' ¨t²Î­è³s¤W DDE ¦Ü¸ê®Æ¶×¤JExcel¤u§@ªí³æ¡A¶·¦³¤@­Ó½w½Ä®É¬q¡A³o®É¦pªG°¨¤W¥h§ì¨úDDE¸ê®Æ¡A·|¦³«¬ºA¤£²Åªº¿ù»~°T®§²£¥Í¡A¨Ã¤¤Â_°õ¦æ§Çªº§@·~¡C
  20.         Application.OnTime (Now + TimeValue("00:00:05")), "ThisWorkbook.ExeSelf"
  21.     End If
  22. End Sub

  23. Sub ExeSelf()
  24.     timerEnabled = True

  25.     If IsError(Sheets("¤u§@ªí1").Range("E5").Value) Then ' °²³] E5 Äæ¦ì¬°¦hªÅ¤O¹D
  26.         Cv = 0
  27.     Else
  28.         Cv = Sheets("¤u§@ªí1").Range("E5").Value          ' ¦hªÅ¤O¹D¦¨¥æ»ù
  29.     End If
  30.    
  31.     If (turnKey = 0 Or Ov = 0) Then                     ' ·í turnKey ­È¬°0¡Aªí¥Ü¨ä¬°ªì©l­È³]©w¡C¬°¦Ò¶q¨t²Î­è³s¤W DDE¡A
  32.                                                         ' ¦³®É¦b²Ä¤@®Ú¼Æ­È²£¥Í®É Ov = Cv ­È¥i¯à¬° 0 (IsError()ªºª¬ºA)¡C
  33.         Ov = Cv                                         ' ¦hªÅ¤O¹D¶}½L»ùªì©l­È³]©w
  34.         Hv = Cv                                         ' ¦hªÅ¤O¹D³Ì°ª»ùªì©l­È³]©w
  35.         Lv = Cv                                         ' ¦hªÅ¤O¹D³Ì§C»ùªì©l­È³]©w
  36.     End If
  37.    
  38.     turnKey = turnKey + 1
  39.    
  40.     If (Cv > Hv) Then Hv = Cv                           ' §PÂ_¦hªÅ¤O¹D³Ì°ª»ù
  41.     If (Cv < Lv) Then Lv = Cv                           ' §PÂ_¦hªÅ¤O¹D³Ì§C»ù

  42.     counter = counter + 1
  43.     [F1].Value = counter    ' 08:45 «á¨C¹j 30 ¬í¡A½ÐÆ[¹î F1 Äæ¦ì¼Æ¦r¬O§_·|²§°Ê¡H
  44.    
  45.     If (turnKey < nums) Then
  46.         Application.OnTime (Now + TimeValue("00:00:01")), "ThisWorkbook.ExeSelf"
  47.     Else
  48.         If (Cv > 0) Then Call Timer
  49.         Call timerStart
  50.     End If
  51. End Sub

  52. Sub Timer()
  53.     Dim str As String
  54.    
  55.     If (TimeValue(Now) >= TimeValue("08:45:00") And TimeValue(Now) <= TimeValue("13:46:01")) Then    ' ¶}½L¡B¦¬½L®É¬q³]©w
  56.         ' ½L¤¤³B²z¡A±N¸ê®Æ¶×¤J¼g¤J¤u§@ªí³æ¤ºÀx¦s¡C

  57.     End If
  58. End Sub
½Æ»s¥N½X
(¤G) §ï¥H°}¦C³B²z¡C(1. ¦hªÅ¤O¹D¡B2. ¤Ï¦V¶Õ¤O¡B3. ¥D¤O±±½L)
  1. Dim Ov(1 To 3), Hv(1 To 3), Lv(1 To 3), Cv(1 To 3) As Single  ' ¶}½L»ù¡B³Ì°ª»ù¡B³Ì°ª»ù¡B¦¬½L»ù(¦¨¥æ»ù) µ¥³]©w¤§ÅܼơC
  2. .                                                             ' §ï¥H°}¦C³B²z¡C(1. ¦hªÅ¤O¹D¡B2. ¤Ï¦V¶Õ¤O¡B3. ¥D¤O±±½L)
  3. .
  4. .

  5. Sub ExeSelf()
  6.     timerEnabled = True

  7.     If IsError(Sheets("¤u§@ªí1").Range("E5").Value) Then ' °²³] E5 Äæ¦ì¬°¦hªÅ¤O¹D
  8.         Cv(1) = 0
  9.         Cv(2) = 0
  10.         Cv(3) = 0
  11.     Else
  12.         Cv(1) = Sheets("¤u§@ªí1").Range("E5").Value    ' ¦hªÅ¤O¹D¦¨¥æ»ù
  13.         Cv(2) = Sheets("¤u§@ªí1").Range("I5").Value    ' ¤Ï¦V¶Õ¤O¦¨¥æ»ù
  14.         Cv(3) = Sheets("¤u§@ªí1").Range("M5").Value    ' ¥D¤O±±½L¦¨¥æ»ù
  15.     End If
  16.    
  17.     If (turnKey = 0 Or Ov(1) = 0) Then                 ' ·í turnKey ­È¬°0¡Aªí¥Ü¨ä¬°ªì©l­È³]©w¡C¬°¦Ò¶q¨t²Î­è³s¤W DDE¡A
  18.                                                        ' ¦³®É¦b²Ä¤@®Ú¼Æ­È²£¥Í®É Ov = Cv ­È¥i¯à¬° 0 (IsError()ªºª¬ºA)¡C
  19.         Ov(1) = Cv(1)                                  ' ¦hªÅ¤O¹D¶}½L»ùªì©l­È³]©w
  20.         Hv(1) = Cv(1)                                  ' ¦hªÅ¤O¹D³Ì°ª»ùªì©l­È³]©w
  21.         Lv(1) = Cv(1)                                  ' ¦hªÅ¤O¹D³Ì§C»ùªì©l­È³]©w
  22.         Ov(2) = Cv(2)                                  ' ¤Ï¦V¶Õ¤O¶}½L»ùªì©l­È³]©w
  23.         Hv(2) = Cv(2)                                  ' ¤Ï¦V¶Õ¤O³Ì°ª»ùªì©l­È³]©w
  24.         Lv(2) = Cv(2)                                  ' ¤Ï¦V¶Õ¤O³Ì§C»ùªì©l­È³]©w
  25.         Ov(3) = Cv(3)                                  ' ¥D¤O±±½L¶}½L»ùªì©l­È³]©w
  26.         Hv(3) = Cv(3)                                  ' ¥D¤O±±½L³Ì°ª»ùªì©l­È³]©w
  27.         Lv(3) = Cv(3)                                  ' ¥D¤O±±½L³Ì§C»ùªì©l­È³]©w
  28.     End If
  29.    
  30.     turnKey = turnKey + 1
  31.    
  32.     If (Cv(1) > Hv(1)) Then Hv(1) = Cv(1)              ' §PÂ_¦hªÅ¤O¹D³Ì°ª»ù
  33.     If (Cv(2) > Hv(2)) Then Hv(2) = Cv(2)              ' §PÂ_¤Ï¦V¶Õ¤O³Ì°ª»ù
  34.     If (Cv(3) > Hv(3)) Then Hv(3) = Cv(3)              ' §PÂ_¥D¤O±±½L³Ì°ª»ù

  35.     If (Cv(1) < Lv(1)) Then Lv(1) = Cv(1)              ' §PÂ_¦hªÅ¤O¹D³Ì§C»ù
  36.     If (Cv(2) < Lv(2)) Then Lv(1) = Cv(2)              ' §PÂ_¤Ï¦V¶Õ¤O³Ì§C»ù
  37.     If (Cv(3) < Lv(3)) Then Lv(1) = Cv(3)              ' §PÂ_¥D¤O±±½L³Ì§C»ù

  38.     If (turnKey < nums) Then
  39.         Application.OnTime (Now + TimeValue("00:00:01")), "ThisWorkbook.ExeSelf"
  40.     Else
  41.         If (Cv(1) > 0) Then Call Timer
  42.         Call timerStart
  43.     End If
  44. End Sub
½Æ»s¥N½X

TOP

·PÁÂc_c_lai¤j¤jªº¼ö¤ß¸Ô²Ó¸Ñ»¡  ¾Ç²ß¤F¸Ñ¨Ç¤F
¦A½Ð°Ý c_c_lai ¤j¤j  §Y®É¤ñ¹ïªºO/H/L/C ­n¦p¦ó«ü©w¼È¦s ...
mead µoªí©ó 2012-5-26 11:57

¨Ì§A¥Ø«eªº»Ý¨D¨Ó»¡¡A­n¥H¦hªÅ¤O¹D¡B¤Ï¦V¶Õ¤O¡B¥D¤O±±½Lªº¸ê®Æ¦C¨Ó³B²zªº¸Ü¡A
¬O¦³Ãø«×¡A¦Ó¥B§Ú¥»¨­¬O¤£°µ³o»ò³B¸Ìªº¡C
¤@¯ë±`¨£ªº¦h¥H¦¨¥æ»ù¬°¥D¹Ï¡B¦¨¥æ¶q¡B¦hªÅ¤O¹D¡B¤Ï¦V¶Õ¤Oµ¥¬°ªþ¹Ï¡C
¤]´N¬O»¡¦h¥H K ½uªº O/H/L/C ¨Ó³B²zªÑ»ù¹Ï¡A¥H§é½u¡B¬Wª¬¹Ï¨Ó»²§Uªþ¹Ï¡C
¦Ó¥B§A¥Ø«eªº¦hªÅ¤O¹D¡B¤Ï¦V¶Õ¤O¡B¥D¤O±±½Lªº¼Æ¾Ú§¡¦³¥¿­t¼Æ¡A§Ú¨S¸Õ¹L
ªÑ»ù¹Ï¯à§_³B²z¦¹¥¿­t­Èªº¼Æ¦C¡C§A¥i¥H¸Õ¸Õ¬Ý¡A¤èªk¦p¤U¡G
(1)  °²³]§A³]©w¨C¹j 30 ¬í³B²z¸ê®Æ¤@µ§¡C (§Ú¤§«eªþ¤Wªº½d¨Ò§Y¬O)
(2) °²³]§A³]©wBCDEÄæ¦ì¬°¦hªÅ¤O¹D¤§O/H/L/C¡AFGHIÄæ¦ì¬°¤Ï¦V¶Õ¤O¤§O/H/L/C¡AJKLMÄæ¦ì¬°¥D¤O±±½L¤§O/H/L/C¡C
(3) §Ú¤§«eªþ¤Wªº½d¨Ò¥[¥H­×§ï¦¨§A­nªº (·Q¤F·QÁÙ¬OÀ°§A§¹¦¨§a¡I)¡G
  1. Option Explicit
  2. Dim timerEnabled As Boolean  '
  3. Dim counter As Single        ' ¥Ü½d¥Î­p¼Æ¾¹
  4. Dim Ov(1 To 3), Hv(1 To 3), Lv(1 To 3), Cv(1 To 3) As Single  ' ¶}½L»ù¡B³Ì°ª»ù¡B³Ì°ª»ù¡B¦¬½L»ù(¦¨¥æ»ù) µ¥³]©w¤§ÅܼơC
  5.                                                               ' §ï¥H°}¦C³B²z¡C(1. ¦hªÅ¤O¹D¡B2. ¤Ï¦V¶Õ¤O¡B3. ¥D¤O±±½L)
  6. Dim turnKey As Integer   ' §PÂ_¨C¤@½ü°j¤W¦CÅܼƪì©l­È¤§³]©w¡C
  7. Dim nums As Integer      ' ±N¨C¹j "¦h¤Ö®É¶¡" ³B²z®É¬q¡A²¾¨ì¦¹³B¨Ó³B²z¡C

  8. Private Sub Workbook_Open()
  9.     counter = 0

  10.     nums = 30            ' ³]©w¨C¹j 30 ¬í³B²z®É¬q¡A¥ç¥i§ó§ï¦¨ 10 (¨C¹j 10 ¬í)¡B20 (¨C¹j 20 ¬í)µ¥µ¥¡C
  11.                          ' ¦¹³B¤£«Øij¨Ï¥Î 1 ¬í®É¬q¨Ó³B²z¡A¦]¬°ÁÙ­n¥h¨D¥X¶}½L¡B³Ì°ª¡B³Ì§C¡B¦¨¥æ»ù¡C
  12.     timerEnabled = False
  13.     Call timerStart      ' µ{¦¡¤@±Ò©l¡A«K¥h¦Û°Ê°õ¦æ timerStart      
  14. End Sub

  15. Sub Timer()
  16.     Dim str As String
  17.    
  18.     If (TimeValue(Now) >= TimeValue("08:45:00") And TimeValue(Now) <= TimeValue("13:46:01")) Then    ' ¶}½L¡B¦¬½L®É¬q³]©w
  19.         ' ½L¤¤³B²z¡A±N¸ê®Æ¶×¤J¼g¤J¤u§@ªí³æ¤ºÀx¦s¡C

  20.         With Sheets("µ¦²¤°O¿ý")
  21.             .Cells(4, 2) = .Cells(4, 2) + 1 '±NÅܰʦ渹¥[¤@¦æ
  22.             Pos = .Cells(4, 2)
  23.             .Cells(Pos, 1) = Time
  24.             .Cells(Pos, 2) = Ov(1)    ' B Äæ
  25.             .Cells(Pos, 3) = Hv(1)    ' C Äæ
  26.             .Cells(Pos, 4) = Lv(1)    ' D Äæ
  27.             .Cells(Pos, 5) = Cv(1)    ' E Äæ
  28.             .Cells(Pos, 6) = Ov(2)    ' F Äæ
  29.             .Cells(Pos, 7) = Hv(2)    ' G Äæ
  30.             .Cells(Pos, 8) = Lv(2)    ' H Äæ
  31.             .Cells(Pos, 9) = Cv(2)    ' I Äæ
  32.             .Cells(Pos, 10) = Ov(3)   ' J Äæ
  33.             .Cells(Pos, 11) = Hv(3)   ' K Äæ
  34.             .Cells(Pos, 12) = Lv(3)   ' L Äæ
  35.             .Cells(Pos, 13) = Cv(3)   ' M Äæ
  36.         End With
  37.     End If
  38. End Sub

  39. Sub ExeSelf()
  40.     timerEnabled = True

  41.     If IsError(Sheets("µ¦²¤°O¿ý").Range("B2").Value) Then ' °²³] B2 Äæ¦ì¬°¦hªÅ¤O¹D
  42.         Cv(1) = 0
  43.         Cv(2) = 0
  44.         Cv(3) = 0
  45.     Else
  46.         Cv(1) = Sheets("µ¦²¤°O¿ý").Range("B2").Value   ' ¦hªÅ¤O¹D¦¨¥æ»ù
  47.         Cv(2) = Sheets("µ¦²¤°O¿ý").Range("C2").Value   ' ¤Ï¦V¶Õ¤O¦¨¥æ»ù
  48.         Cv(3) = Sheets("µ¦²¤°O¿ý").Range("D2").Value   ' ¥D¤O±±½L¦¨¥æ»ù
  49.     End If
  50.    
  51.     If (turnKey = 0 Or Ov(1) = 0) Then                 ' ·í turnKey ­È¬°0¡Aªí¥Ü¨ä¬°ªì©l­È³]©w¡C¬°¦Ò¶q¨t²Î­è³s¤W DDE¡A
  52.                                                        ' ¦³®É¦b²Ä¤@®Ú¼Æ­È²£¥Í®É Ov = Cv ­È¥i¯à¬° 0 (IsError()ªºª¬ºA)¡C
  53.         Ov(1) = Cv(1)                                  ' ¦hªÅ¤O¹D¶}½L»ùªì©l­È³]©w
  54.         Hv(1) = Cv(1)                                  ' ¦hªÅ¤O¹D³Ì°ª»ùªì©l­È³]©w
  55.         Lv(1) = Cv(1)                                  ' ¦hªÅ¤O¹D³Ì§C»ùªì©l­È³]©w
  56.         Ov(2) = Cv(2)                                  ' ¤Ï¦V¶Õ¤O¶}½L»ùªì©l­È³]©w
  57.         Hv(2) = Cv(2)                                  ' ¤Ï¦V¶Õ¤O³Ì°ª»ùªì©l­È³]©w
  58.         Lv(2) = Cv(2)                                  ' ¤Ï¦V¶Õ¤O³Ì§C»ùªì©l­È³]©w
  59.         Ov(3) = Cv(3)                                  ' ¥D¤O±±½L¶}½L»ùªì©l­È³]©w
  60.         Hv(3) = Cv(3)                                  ' ¥D¤O±±½L³Ì°ª»ùªì©l­È³]©w
  61.         Lv(3) = Cv(3)                                  ' ¥D¤O±±½L³Ì§C»ùªì©l­È³]©w
  62.     End If
  63.    
  64.     turnKey = turnKey + 1
  65.    
  66.     If (Cv(1) > Hv(1)) Then Hv(1) = Cv(1)              ' §PÂ_¦hªÅ¤O¹D³Ì°ª»ù
  67.     If (Cv(2) > Hv(2)) Then Hv(2) = Cv(2)              ' §PÂ_¤Ï¦V¶Õ¤O³Ì°ª»ù
  68.     If (Cv(3) > Hv(3)) Then Hv(3) = Cv(3)              ' §PÂ_¥D¤O±±½L³Ì°ª»ù

  69.     If (Cv(1) < Lv(1)) Then Lv(1) = Cv(1)              ' §PÂ_¦hªÅ¤O¹D³Ì§C»ù
  70.     If (Cv(2) < Lv(2)) Then Lv(1) = Cv(2)              ' §PÂ_¤Ï¦V¶Õ¤O³Ì§C»ù
  71.     If (Cv(3) < Lv(3)) Then Lv(1) = Cv(3)              ' §PÂ_¥D¤O±±½L³Ì§C»ù

  72.     If (turnKey < nums) Then
  73.         Application.OnTime (Now + TimeValue("00:00:01")), "ThisWorkbook.ExeSelf"
  74.     Else
  75.         If (Cv(1) > 0) Then Call Timer
  76.         Call timerStart
  77.     End If
  78. End Sub

  79. Sub timerStart()
  80.     turnKey = 0          ' ¨C¤@½ü°j½L¤¤ªì©l­È¤§³]©w¡C

  81.     If timerEnabled Then
  82.         Application.OnTime (Now), "ThisWorkbook.ExeSelf"
  83.     Else
  84.         ' ¨t²Î­è³s¤W DDE ¦Ü¸ê®Æ¶×¤JExcel¤u§@ªí³æ¡A¶·¦³¤@­Ó½w½Ä®É¬q¡A³o®É¦pªG°¨¤W¥h§ì¨úDDE¸ê®Æ¡A·|¦³«¬ºA¤£²Åªº¿ù»~°T®§²£¥Í¡A¨Ã¤¤Â_°õ¦æ§Çªº§@·~¡C
  85.         Application.OnTime (Now + TimeValue("00:00:05")), "ThisWorkbook.ExeSelf"
  86.     End If
  87. End Sub
½Æ»s¥N½X
(4) ¦pªG¦³¤F O/H/L/C «á¡A§A´N·ÓµÛ§Ú³Ì¥ý§i¶D§AªºªÑ»ù¹Ï»s§@¤èªk¡A¤@¤Á«K¤j¥\§i¦¨¤F¡I
(5) ¥¿¦p§Ú¦b«e­±»¡¹Lªº¡G§Ú¨S¸Õ¹LªÑ»ù¹Ï¯à§_³B²z¦¹¥¿­t­Èªº¼Æ¦C¡A§A¥i¥H¸Õ¸Õ¬Ý¡C
     ³o¨à§Ú¥u¬O±Ð§A«ç»ò³B²z¤H¤u²£¥Í¤§ O/H/L/C ªºÂ¬ªù¦Ó¤w¡I

TOP

¥»©«³Ì«á¥Ñ c_c_lai ©ó 2012-5-28 08:01 ½s¿è

¦^´_ 14# mead
¬Ý¤F¤@¤U§A¨º¤T¦X¤@ªºµ{¦¡¡A§Ú±N¥¦¾ã²z¤F¤@¤U (§Aª½±µ¶K¤W´N OK ¤F¡A¥t¥~§Ú¤]·|±NÀÉ®×E-Mailµ¹§A)¡G
  1. ' ¥H¦hªÅ¤O¹D¡B¤Ï¦V¶Õ¤O¡B¥D¤O±±½Lªº¸ê®Æ¦C¨Ó³B²z
  2. Option Explicit
  3. Dim timerEnabled As Boolean  '
  4. Dim Ov(1 To 3), Hv(1 To 3), Lv(1 To 3), Cv(1 To 3) As Single  ' ¶}½L»ù¡B³Ì°ª»ù¡B³Ì°ª»ù¡B¦¬½L»ù(¦¨¥æ»ù) µ¥³]©w¤§ÅܼơC
  5.                                                               ' §ï¥H°}¦C³B²z¡C(1. ¦hªÅ¤O¹D¡B2. ¤Ï¦V¶Õ¤O¡B3. ¥D¤O±±½L)
  6. Dim turnKey As Integer   ' §PÂ_¨C¤@½ü°j¤W¦CÅܼƪì©l­È¤§³]©w¡C
  7. Dim nums As Integer      ' ±N¨C¹j "¦h¤Ö®É¶¡" ³B²z®É¬q¡A²¾¨ì¦¹³B¨Ó³B²z¡C

  8. Private Sub Workbook_Open()
  9.     Sheets("µ¦²¤°O¿ý").Cells(4, 2) = 10
  10.    
  11.     nums = 30            ' ³]©w¨C¹j 30 ¬í³B²z®É¬q¡A¥ç¥i§ó§ï¦¨ 30 (¨C¹j 30 ¬í)¡B 10 (¨C¹j 10 ¬í)¡B20 (¨C¹j 20 ¬í)µ¥µ¥¡C
  12.     timerEnabled = False ' ¦¹³B¤£«Øij¨Ï¥Î 1 ¬í®É¬q¨Ó³B²z¡A¦]¬°ÁÙ­n¥h¨D¥X¶}½L¡B³Ì°ª¡B³Ì§C¡B¦¨¥æ»ù¡C

  13.     Call timerStart      ' µ{¦¡¤@±Ò©l¡A«K¥h¦Û°Ê°õ¦æ timerStart
  14. End Sub

  15. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  16.     On Error Resume Next
  17.     Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkbook.Timer", , False
  18. End Sub

  19. Public Sub Timer()
  20.     Dim Pos As Integer
  21.    
  22.     On Error Resume Next
  23.     ' Sheets("µ¦²¤°O¿ý").Cells(2, 1) = Time '±N®É¶¡show¦Üµ¦²¤ªºa2Äæ¦ì
  24.    
  25.      If (TimeValue(Now) >= TimeValue("08:45:00") And TimeValue(Now) <= TimeValue("13:46:01")) Then    ' ¶}½L¡B¦¬½L®É¬q³]©w
  26.         ' ½L¤¤³B²z¡A±N¸ê®Æ¶×¤J¼g¤J¤u§@ªí³æ¤ºÀx¦s¡C

  27.         With Sheets("µ¦²¤°O¿ý")
  28.             Cells(4, 2).Value = Cells(4, 2).Value + 1 '±NÅܰʦ渹¥[¤@¦æ

  29.             Pos = Cells(4, 2).Value
  30.             
  31.             Cells(Pos, 1).Value = Time
  32.             Cells(Pos, 2).Value = Ov(1)    ' B Äæ
  33.             Cells(Pos, 3).Value = Hv(1)    ' C Äæ
  34.             Cells(Pos, 4).Value = Lv(1)    ' D Äæ
  35.             Cells(Pos, 5).Value = Cv(1)    ' E Äæ

  36.             Cells(Pos, 6).Value = Ov(2)    ' F Äæ
  37.             Cells(Pos, 7).Value = Hv(2)    ' G Äæ
  38.             Cells(Pos, 8).Value = Lv(2)    ' H Äæ
  39.             Cells(Pos, 9).Value = Cv(2)    ' I Äæ

  40.             Cells(Pos, 10).Value = Ov(3)   ' J Äæ
  41.             Cells(Pos, 11).Value = Hv(3)   ' K Äæ
  42.             Cells(Pos, 12).Value = Lv(3)   ' L Äæ
  43.             Cells(Pos, 13).Value = Cv(3)   ' M Äæ
  44.         End With
  45.     End If
  46. End Sub

  47. Sub ExeSelf()
  48.     timerEnabled = True

  49.     If IsError(Sheets("µ¦²¤°O¿ý").Range("B2").Value) Then ' °²³] B2 Äæ¦ì¬°¦hªÅ¤O¹D
  50.         Cv(1) = 0
  51.         Cv(2) = 0
  52.         Cv(3) = 0
  53.     Else
  54.         Cv(1) = Sheets("µ¦²¤°O¿ý").Range("B2").Value   ' ¦hªÅ¤O¹D¦¨¥æ»ù
  55.         Cv(2) = Sheets("µ¦²¤°O¿ý").Range("C2").Value   ' ¤Ï¦V¶Õ¤O¦¨¥æ»ù
  56.         Cv(3) = Sheets("µ¦²¤°O¿ý").Range("D2").Value   ' ¥D¤O±±½L¦¨¥æ»ù
  57.     End If

  58.     If (turnKey = 0 Or Ov(1) = 0) Then                 ' ·í turnKey ­È¬°0¡Aªí¥Ü¨ä¬°ªì©l­È³]©w¡C¬°¦Ò¶q¨t²Î­è³s¤W DDE¡A
  59.                                                        ' ¦³®É¦b²Ä¤@®Ú¼Æ­È²£¥Í®É Ov = Cv ­È¥i¯à¬° 0 (IsError()ªºª¬ºA)¡C
  60.         Ov(1) = Cv(1)                                  ' ¦hªÅ¤O¹D¶}½L»ùªì©l­È³]©w
  61.         Hv(1) = Cv(1)                                  ' ¦hªÅ¤O¹D³Ì°ª»ùªì©l­È³]©w
  62.         Lv(1) = Cv(1)                                  ' ¦hªÅ¤O¹D³Ì§C»ùªì©l­È³]©w

  63.         Ov(2) = Cv(2)                                  ' ¤Ï¦V¶Õ¤O¶}½L»ùªì©l­È³]©w
  64.         Hv(2) = Cv(2)                                  ' ¤Ï¦V¶Õ¤O³Ì°ª»ùªì©l­È³]©w
  65.         Lv(2) = Cv(2)                                  ' ¤Ï¦V¶Õ¤O³Ì§C»ùªì©l­È³]©w

  66.         Ov(3) = Cv(3)                                  ' ¥D¤O±±½L¶}½L»ùªì©l­È³]©w
  67.         Hv(3) = Cv(3)                                  ' ¥D¤O±±½L³Ì°ª»ùªì©l­È³]©w
  68.         Lv(3) = Cv(3)                                  ' ¥D¤O±±½L³Ì§C»ùªì©l­È³]©w
  69.     End If

  70.     turnKey = turnKey + 1

  71.     If (Cv(1) > Hv(1)) Then Hv(1) = Cv(1)              ' §PÂ_¦hªÅ¤O¹D³Ì°ª»ù
  72.     If (Cv(2) > Hv(2)) Then Hv(2) = Cv(2)              ' §PÂ_¤Ï¦V¶Õ¤O³Ì°ª»ù
  73.     If (Cv(3) > Hv(3)) Then Hv(3) = Cv(3)              ' §PÂ_¥D¤O±±½L³Ì°ª»ù

  74.     If (Cv(1) < Lv(1)) Then Lv(1) = Cv(1)              ' §PÂ_¦hªÅ¤O¹D³Ì§C»ù
  75.     If (Cv(2) < Lv(2)) Then Lv(1) = Cv(2)              ' §PÂ_¤Ï¦V¶Õ¤O³Ì§C»ù
  76.     If (Cv(3) < Lv(3)) Then Lv(1) = Cv(3)              ' §PÂ_¥D¤O±±½L³Ì§C»ù

  77.     If (turnKey < nums) Then
  78.         Application.OnTime (Now + TimeValue("00:00:01")), "ThisWorkbook.ExeSelf"
  79.     Else
  80.         If (Cv(1) <> 0) Then Call Timer
  81.         ' Call Timer
  82.         Call timerStart
  83.     End If
  84. End Sub

  85. Sub timerStart()
  86.     turnKey = 0          ' ¨C¤@½ü°j½L¤¤ªì©l­È¤§³]©w¡C

  87.     If timerEnabled Then
  88.         ' Application.OnTime (Now), "ThisWorkbook.ExeSelf"      
  89.        [color=Red]Application.OnTime (Now + TimeValue("00:00:01")), "ThisWorkbook.timerOnTimer"[/color]
  90.     Else
  91.         ' ¨t²Î­è³s¤W DDE ¦Ü¸ê®Æ¶×¤JExcel¤u§@ªí³æ¡A¶·¦³¤@­Ó½w½Ä®É¬q¡A³o®É¦pªG°¨¤W¥h§ì¨úDDE¸ê®Æ¡A·|¦³«¬ºA¤£²Åªº¿ù»~°T®§²£¥Í¡A¨Ã¤¤Â_°õ¦æ§Çªº§@·~¡C
  92.         Application.OnTime (Now + TimeValue("00:00:05")), "ThisWorkbook.ExeSelf"
  93.     End If
  94. End Sub
½Æ»s¥N½X
¦³Ãö³]©w¶¡®æ®É¬q¥i¨Ì­Ó¤H»Ý¨D¦Ó³]¸m (­Ó¤H¬O¿ï¾Ü B¡B©Î C¡A B ¬O¼g¦º¦bµ{¦¡¤º¡A C ¥i±q¤u§@ªí³æ¤º¤§"A5"Äæ¦ì¨Ì­Ó¤H»Ý¨D¥h¥~³¡§ó§ï)
(A) LastMin = Hour(Time) * 3600 + Minute(Time) * 60 + Second(Time) ¬O¨D¥X²{¦b®É¶¡¤§´«ºâ­È¡A
      ¦p¡G²{¦b¬O 11:25:10¡A «h LastMin = 41110 ¬í¡F
(B) ½d¨Ò¤¤ªº nums = 30¡A ¬Oª½±µ³]©w¬° 30 ¬í¡F
(C) ³]©w¤@©T©wÄæ¦ì (°²³]¬° "A5")¡A¨äÄæ¦ì­Èª½±µ¿é¤J 00:00:30¡C
      nums = Hour(Cells(5,1).Value) * 3600 + Minute(Cells(5,1).Value) * 60 + Second(Cells(5,1).Value)
     «h nums =  30 ¬í¡C   
P.S. ¦pªG§A·Q­nÆF¬¡¹B§@ªº¸Ü¡A ¥i¿ï¾Ü C ¶µ¡A¸û¦³¼u©Ê¡A A ¶µµ{¦¡½X¦b³B²z¤W·|µL¿×ªº¼W¤j
       (¦p¥[¤W¦h¤Ö®É¶¡¦A¥h§P¹ï¤ñ¸û¡AµM«á¤S¦A¨D±o¥Ø«e®É¶¡µ¥)¡C
ªþ¤Wµ{¦¡°õ¦æµe­±¦@ÀÀ°Ñ¦Ò¡G

0526¤¸¤j°O¿ý¶qºAOHLC.rar (22.53 KB)

TOP

        ÀR«ä¦Û¦b : Ä@­n¤j¡B§Ó­n°í¡B®ð­n¬X¡B¤ß­n²Ó¡C
ªð¦^¦Cªí ¤W¤@¥DÃD