½Ð°Ý°ª¤ân±N¥H¤UDDE ¨C¤ÀÄÁ°O¿ý§ï¬°30¬í¦Û°Ê°O¿ý¤@¦¸n«ç§ï
| ©«¤l48 ¥DÃD14 ºëµØ0 ¿n¤À62 ÂI¦W0  §@·~¨t²Îwin7 ³nÅ骩¥»office2003 ¾\ŪÅv20 ©Ê§O¨k µù¥U®É¶¡2012-5-25 ³Ì«áµn¿ý2022-4-23 
 | 
 ½Ð°Ý°ª¤ân±N¥H¤UDDE ¨C¤ÀÄÁ°O¿ý§ï¬°30¬í¦Û°Ê°O¿ý¤@¦¸n«ç§ï
| §Ú¹ïVBA³£¤£À´¦bºô¤W§ä¦n¤[§ä¨ì¤@Ó¤ñ¸û±µªñ§Únªº½d¨Ò ¥i¬O¥L¬O¨C¤ÀÄÁ°O¿ý¤@¦¸
 ¥i¥H½Ð°ª¤âÀ°§Ú§ï¨C30¬í´N°O¿ý¤@¦¸¶Ü
 ¤]ÁÂÁ³o¦ì´£¨Ñ½d¨Òªººô¤Í
 
 
 Option Explicit
 Dim LastMin As Integer
 
 Private Sub Workbook_Open()
 Sheets("µ¦²¤°O¿ý").Cells(4, 2) = 10
 LastMin = Minute(Time)
 Call Timer
 End Sub
 
 Private Sub Workbook_BeforeClose(Cancel As Boolean)
 On Error Resume Next
 Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkbook.Timer", , False
 End Sub
 
 
 Public Sub Timer()
 Dim Pos As Integer, i As Integer, RangeStr As String
 
 On Error Resume Next
 Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkbook.Timer" '¨C¬íÅã¥Ü
 Sheets("µ¦²¤°O¿ý").Cells(3, 2) = Time '±N®É¶¡show¦Üµ¦²¤ªºb3Äæ¦ì
 Dim HHMM As Integer
 HHMM = Hour(Time) * 100 + Minute(Time)
 If (HHMM < 845 Or HHMM > 1345) Then Exit Sub 'Àç·~®É¶¡¤~°õ¦æ
 If Minute(Time) <> LastMin Then '¶}©l«á°µ
 With Sheets("µ¦²¤°O¿ý")
 .Cells(4, 2) = .Cells(4, 2) + 1 '±NÅܰʦ渹¥[¤@¦æ
 Pos = .Cells(4, 2)
 .Cells(Pos, 1) = Time
 .Cells(Pos, 2) = .Cells(2, 2)
 .Cells(Pos, 3) = .Cells(2, 3)
 .Cells(Pos, 4) = .Cells(2, 4)
 .Cells(Pos, 5) = .Cells(2, 5)
 .Cells(Pos, 6) = .Cells(2, 6)
 .Cells(Pos, 7) = .Cells(2, 7)
 .Cells(Pos, 8) = .Cells(2, 8)
 .Cells(Pos, 9) = .Cells(2, 9)
 .Cells(Pos, 10) = .Cells(2, 10)
 
 
 End With
 
 LastMin = Minute(Time)
 End If
 End Sub
 | 
 | 
|  | 
|  |  | 
|  |  | 
| ©«¤l2035 ¥DÃD24 ºëµØ0 ¿n¤À2031 ÂI¦W0  §@·~¨t²ÎWin7 ³nÅ骩¥»Office2010 ¾\ŪÅv100 ©Ê§O¨k µù¥U®É¶¡2012-3-22 ³Ì«áµn¿ý2024-2-1 
 | 
                
| ¦^´_ 1# xu123 ´N¥H§A¤â¤W®×¨Ò¨Ó°Q½×ªº¸Ü¡A§A¥un±N "00:00:01" (¨C¤@¬í)
 קאּ "00:00:30"  (¨C¤T¤Q¬í) «K§¹¦¨¤F¡I
 | 
 | 
|  | 
|  |  | 
|  |  | 
| ©«¤l48 ¥DÃD14 ºëµØ0 ¿n¤À62 ÂI¦W0  §@·~¨t²Îwin7 ³nÅ骩¥»office2003 ¾\ŪÅv20 ©Ê§O¨k µù¥U®É¶¡2012-5-25 ³Ì«áµn¿ý2022-4-23 
 | 
                
| ÁÂÁÂc_c_lai ¤jªº¦^´_ ¤U©P¶}½L¦A¸Õ¸Õ¬Ý
 | 
 | 
|  | 
|  |  | 
|  |  | 
| ©«¤l2035 ¥DÃD24 ºëµØ0 ¿n¤À2031 ÂI¦W0  §@·~¨t²ÎWin7 ³nÅ骩¥»Office2010 ¾\ŪÅv100 ©Ê§O¨k µù¥U®É¶¡2012-3-22 ³Ì«áµn¿ý2024-2-1 
 | 
                
| ¦^´_ 3# xu123 ¤£¶·µ¥¶}½L¡A§A¥un¶}±Ò¸ÓExcel ªí³æ¡A©ó 8:45 «áÆ[¹î¨C¹j30¬í¬O§_·|¼g¤J¤@µ§¬ö¿ý¡A
 µª®×«K§Yª¾¾å¡C
 | 
 | 
|  | 
|  |  | 
|  |  | 
| ©«¤l51 ¥DÃD6 ºëµØ0 ¿n¤À59 ÂI¦W0  §@·~¨t²ÎVISTA ³nÅ骩¥»office 2003 ¾\ŪÅv20 ©Ê§O¨k µù¥U®É¶¡2012-4-1 ³Ì«áµn¿ý2018-5-17 
 | 
                
| ¦^´_  xu123 ¤£¶·µ¥¶}½L¡A§A¥un¶}±Ò¸ÓExcel ªí³æ¡A©ó 8:45 «áÆ[¹î¨C¹j30¬í¬O§_·|¼g¤J¤@µ§¬ö¿ý¡A
 µª®×«K ...
 c_c_lai µoªí©ó 2012-5-25 21:14
 ½Ð°Ýn§ïþ¨à?
 Application.OnTime Now + TimeValue("00:00:30"), "ThisWorkbook.Timer" '¨C¬íÅã¥Ü
 §Ú§ï³oÃä«á  ®É¶¡´N¤£°Ê¤]¤£°O¿ý¤F?
 
 ÁÂÁ  ·P®¦
 | 
 | 
|  | 
|  |  | 
|  |  | 
| ©«¤l48 ¥DÃD14 ºëµØ0 ¿n¤À62 ÂI¦W0  §@·~¨t²Îwin7 ³nÅ骩¥»office2003 ¾\ŪÅv20 ©Ê§O¨k µù¥U®É¶¡2012-5-25 ³Ì«áµn¿ý2022-4-23 
 | 
                
| c_c_lai ¤j ¸Õ¹L¤F¤£¦æ£z
 ``§Ú§ï¶}½L®É¶¡¥h´ú¸Õ
 ÁÙ¬O¤@¤ÀÄÁ°O¤@¦¸
 | 
 | 
|  | 
|  |  | 
|  |  | 
| ©«¤l2035 ¥DÃD24 ºëµØ0 ¿n¤À2031 ÂI¦W0  §@·~¨t²ÎWin7 ³nÅ骩¥»Office2010 ¾\ŪÅv100 ©Ê§O¨k µù¥U®É¶¡2012-3-22 ³Ì«áµn¿ý2024-2-1 
 | 
                
| ¦^´_ 6# xu123 ½Ðªþ¤WÀɮץѧڳo¤è¨ÓÆ[¹î¡A¦]¬°¨º¥»¨Ó´N¥i¦æªº¡A
 §_«h§Aªº "00:00:01" ¥çµLªk°õ¦æ¡C
 | 
 | 
|  | 
|  |  | 
|  |  | 
| ©«¤l2035 ¥DÃD24 ºëµØ0 ¿n¤À2031 ÂI¦W0  §@·~¨t²ÎWin7 ³nÅ骩¥»Office2010 ¾\ŪÅv100 ©Ê§O¨k µù¥U®É¶¡2012-3-22 ³Ì«áµn¿ý2024-2-1 
 | 
                
| ¦^´_ 6# xu123 ªþ¤W¹Ï¤ù¥H¤Îµ{¦¡½X¨Ñ§A¹ê°È°Ñ¦Ò¡G
 ¤@¡B DDE ¨C¤ÀÄÁ°O¿ý§ï¬°30¬í¦Û°Ê°O¿ý¤@¦¸n«ç§ï [×§ï]
 
     ¤G¡B ¦hªÅ¤O¹D (O/H/L/C) ¹ê»Ú¤§µ{¦¡¹B§@µ{¦¡½X¡A½Ð²Ó¤ßºÝÙ¡C½Æ»s¥N½XOption Explicit
Dim counter As Single      ' ¬°¥[²`¦L¶H¡A¥Î¥¦¨ÓÅã¥Üµ{¦¡¦³§_¦b¹B¦æ³B²z
Private Sub Workbook_Open()
    counter = 0
    Call timerStart        ' ·í¶}±Ò¥» Excel ÀɮסAµ{¦¡«h¦Û°Ê°õ¦æ timerStart µ{¦¡¬q¡C
End Sub
Sub timerStart()
    ' ¥»½d¨Ò³]©w®É¶¡¬O±q¨C¤é¤KÂI¥|¤Q¤¤À¶}©l°_ºâ¡A¨C¹j 30 ¬í«K·|¦Û°Ê¥h°õ¦æ ThisWorkbook µ{¦¡°Ï°ì¤ºªº ExeSelf¡C
    ' ¦pªGı±oµ¥¤Ó¤[¤F¡A¤]¥i¥H¥h²§°Ê®É¬q¡C¨Ò¦p: "00:00:01"(¨C¹j 1 ¬í)¡B"00:00:10"(¨C¹j 10 ¬í)¡B"00:00:20"(¨C¹j 20 ¬í) µ¥µ¥¡C
    If (TimeValue(Now) > TimeValue("08:45:00")) Then Application.OnTime (Now + TimeValue("00:00:30")), "ThisWorkbook.ExeSelf"
End Sub
Sub ExeSelf()
    counter = counter + 1   ' counter ·|³v¦¸¥[¤@
    [F8].Value = counter    ' 08:45 «á¨C¹j 30 ¬í¡A½ÐÆ[¹î F1 Äæ¦ì¼Æ¦r¬O§_·|²§°Ê¡H
    Call timerStart         ' µ{¦¡¤§©Ò¥H·|¤ÏÂаõ¦æ¡A´N¦b©ó¥»¦æ¦Û°Ê¦A¥h¦^ÀY©I¥s°õ¦æ timerStart µ{¦¡¬q¤@¦¸¤§¬G¡C
End Sub
½Ð¯d·N¦¹¨â¤äµ{¦¡ªº¼gªk¤W¤§®t²§¡A§Ú³£ºÉ¶q¤@¤@¥[¥H»¡©ú¬°¦ó¦p¦¹¡A¬Û«H¹ï§A·|¦³§U¯q¡C½Æ»s¥N½XOption Explicit
Dim timerEnabled As Boolean  ' 
Dim counter As Single        ' ¥Ü½d¥Îp¼Æ¾¹
Dim Ov As Single, Hv As Single, Lv As Single, Cv As Single As Single  ' ¶}½L»ù¡B³Ì°ª»ù¡B³Ì°ª»ù¡B¦¬½L»ù(¦¨¥æ»ù) µ¥³]©w¤§ÅܼơC
Dim turnKey As Integer   ' §PÂ_¨C¤@½ü°j¤W¦CÅܼƪì©lȤ§³]©w¡C
Dim nums As Integer      ' ±N¨C¹j "¦h¤Ö®É¶¡" ³B²z®É¬q¡A²¾¨ì¦¹³B¨Ó³B²z¡C
Private Sub Workbook_Open()
    counter = 0
    nums = 30            ' ³]©w¨C¹j 30 ¬í³B²z®É¬q¡A¥ç¥i§ó§ï¦¨ 10 (¨C¹j 10 ¬í)¡B20 (¨C¹j 20 ¬í)µ¥µ¥¡C
                         ' ¦¹³B¤£«ØÄ³¨Ï¥Î 1 ¬í®É¬q¨Ó³B²z¡A¦]¬°ÁÙn¥h¨D¥X¶}½L¡B³Ì°ª¡B³Ì§C¡B¦¨¥æ»ù¡C
    timerEnabled = False
    Call timerStart      ' µ{¦¡¤@±Ò©l¡A«K¥h¦Û°Ê°õ¦æ timerStart      
End Sub
Sub timerStart()
    turnKey = 0          ' ¨C¤@½ü°j½L¤¤ªì©lȤ§³]©w¡C
    If timerEnabled Then 
        Application.OnTime (Now), "ThisWorkbook.ExeSelf"
    Else
        ' ¨t²Îè³s¤W DDE ¦Ü¸ê®Æ¶×¤JExcel¤u§@ªí³æ¡A¶·¦³¤@Ó½w½Ä®É¬q¡A³o®É¦pªG°¨¤W¥h§ì¨úDDE¸ê®Æ¡A·|¦³«¬ºA¤£²Åªº¿ù»~°T®§²£¥Í¡A¨Ã¤¤Â_°õ¦æ§Çªº§@·~¡C
        Application.OnTime (Now + TimeValue("00:00:05")), "ThisWorkbook.ExeSelf"
    End If
End Sub
Sub ExeSelf()
    timerEnabled = True
    If IsError(Sheets("¤u§@ªí1").Range("E5").Value) Then ' °²³] E5 Äæ¦ì¬°¦hªÅ¤O¹D
        Cv = 0
    Else
        Cv = Sheets("¤u§@ªí1").Range("E5").Value          ' ¦hªÅ¤O¹D¦¨¥æ»ù
    End If
    
    If (turnKey = 0 Or Ov = 0) Then                     ' ·í turnKey Ȭ°0¡Aªí¥Ü¨ä¬°ªì©lȳ]©w¡C¬°¦Ò¶q¨t²Îè³s¤W DDE¡A
                                                        ' ¦³®É¦b²Ä¤@®Ú¼ÆÈ²£¥Í®É Ov = Cv È¥i¯à¬° 0 (IsError()ªºª¬ºA)¡C
        Ov = Cv                                         ' ¦hªÅ¤O¹D¶}½L»ùªì©lȳ]©w
        Hv = Cv                                         ' ¦hªÅ¤O¹D³Ì°ª»ùªì©lȳ]©w
        Lv = Cv                                         ' ¦hªÅ¤O¹D³Ì§C»ùªì©lȳ]©w
    End If
    
    turnKey = turnKey + 1
    
    If (Cv > Hv) Then Hv = Cv                           ' §PÂ_¦hªÅ¤O¹D³Ì°ª»ù
    If (Cv < Lv) Then Lv = Cv                           ' §PÂ_¦hªÅ¤O¹D³Ì§C»ù
    counter = counter + 1
    [F1].Value = counter    ' 08:45 «á¨C¹j 30 ¬í¡A½ÐÆ[¹î F1 Äæ¦ì¼Æ¦r¬O§_·|²§°Ê¡H
    
    If (turnKey < nums) Then
        Application.OnTime (Now + TimeValue("00:00:01")), "ThisWorkbook.ExeSelf"
    Else
        If (Cv > 0) Then Call Timer
        Call timerStart
    End If
End Sub
Sub Timer()
    Dim str As String
    
    If (TimeValue(Now) >= TimeValue("08:45:00") And TimeValue(Now) <= TimeValue("13:46:01")) Then    ' ¶}½L¡B¦¬½L®É¬q³]©w
        ' ½L¤¤³B²z¡A±N¸ê®Æ¶×¤J¼g¤J¤u§@ªí³æ¤ºÀx¦s¡C
    End If
End Sub
§Ú̦b¤H¥Í®Èµ{¤W³£¬O±q¤£ª¾¦ÓÀòª¾¤¤¦¨ªøªº¡A¥un¦³¤ß³£¥i¥H¦¨¥\ªº¡C
 | 
 | 
|  | 
|  |  | 
|  |  | 
| ©«¤l48 ¥DÃD14 ºëµØ0 ¿n¤À62 ÂI¦W0  §@·~¨t²Îwin7 ³nÅ骩¥»office2003 ¾\ŪÅv20 ©Ê§O¨k µù¥U®É¶¡2012-5-25 ³Ì«áµn¿ý2022-4-23 
 |  | 
|  | 
|  |  | 
|  |  | 
| ©«¤l51 ¥DÃD6 ºëµØ0 ¿n¤À59 ÂI¦W0  §@·~¨t²ÎVISTA ³nÅ骩¥»office 2003 ¾\ŪÅv20 ©Ê§O¨k µù¥U®É¶¡2012-4-1 ³Ì«áµn¿ý2018-5-17 
 | 
                
| ¦^´_  xu123 ªþ¤W¹Ï¤ù¥H¤Îµ{¦¡½X¨Ñ§A¹ê°È°Ñ¦Ò¡G
 ¤@¡B DDE ¨C¤ÀÄÁ°O¿ý§ï¬°30¬í¦Û°Ê°O¿ý¤@¦¸n«ç§ï [×§ï] ...
 c_c_lai µoªí©ó 2012-5-26 09:44
 ·PÁÂc_c_lai ¤j³o»ò¸Ô²Ó¥Î¤ßªº¸Ñ»¡
 ¤S¶i¤@¨B¾Ç²ß¤F
 ¨Ó´ú¸Õ¬ã¨s¤@¤U
 
 ·P®¦¦A·P®¦
 | 
 | 
|  | 
|  |  | 
|  |  |