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

[µo°Ý] ½Ð±Ð§ì¨ú¤Ó¥­¬vÃÒ¨÷ªºDDE ­n¦p¦ó±q¤¤§ì¨ú¨C¤ÀÄÁªº³Ì¤j¦¨¥æ»ù¤Î³Ì¤p¦¨¥æ»ù

¦^´_ 1# lieh_chun
§A­nªº¬O¤£¬O³o¤äµ{¦¡¤º®e©Ò´y­zªº¡H
  1. Sub ExeSelf()
  2.     timerEnabled = True

  3.     Sheets("µ¦²¤°O¿ý").Cells(2, 1) = Now()
  4.    
  5.     On Error Resume Next
  6.     If (TimeValue(Now) > TimeValue("13:46:01")) Then Exit Sub
  7.    
  8.     If (TimeValue(Now) >= TimeValue("08:45:00")) Then         ' ¶}½L¡B¦¬½L®É¬q³]©w
  9.         If IsError(Sheets("µ¦²¤°O¿ý").Range("B2").Value) Then ' °²³] B2 Äæ¦ì¬°¦hªÅ¤O¹D
  10.             Cv(1) = 0
  11.             Cv(2) = 0
  12.             Cv(3) = 0
  13.         Else
  14.             Cv(1) = Sheets("µ¦²¤°O¿ý").Range("B2").Value   ' ¦hªÅ¤O¹D¦¨¥æ»ù
  15.             Cv(2) = Sheets("µ¦²¤°O¿ý").Range("C2").Value   ' ¤Ï¦V¶Õ¤O¦¨¥æ»ù
  16.             Cv(3) = Sheets("µ¦²¤°O¿ý").Range("D2").Value   ' ¥D¤O±±½L¦¨¥æ»ù
  17.         End If
  18.          
  19.         If (turnKey = 0 Or Ov(1) = 0) Then ' ·í turnKey ­È¬°0¡Aªí¥Ü¨ä¬°ªì©l­È³]©w¡C
  20.             ' ¬°¦Ò¶q¨t²Î­è³s¤WDDE¡A¦³®É¦b²Ä¤@®Ú¼Æ­È²£¥Í®ÉOv = Cv­È¥i¯à¬° 0 ªºª¬ºA)¡C
  21.             Ov(1) = Cv(1)                  ' ¦hªÅ¤O¹D¶}½L»ùªì©l­È³]©w
  22.             Hv(1) = Cv(1)                  ' ¦hªÅ¤O¹D³Ì°ª»ùªì©l­È³]©w
  23.             Lv(1) = Cv(1)                  ' ¦hªÅ¤O¹D³Ì§C»ùªì©l­È³]©w
  24.                
  25.             Ov(2) = Cv(2)                  ' ¤Ï¦V¶Õ¤O¶}½L»ùªì©l­È³]©w
  26.             Hv(2) = Cv(2)                  ' ¤Ï¦V¶Õ¤O³Ì°ª»ùªì©l­È³]©w
  27.             Lv(2) = Cv(2)                  ' ¤Ï¦V¶Õ¤O³Ì§C»ùªì©l­È³]©w
  28.                   
  29.             Ov(3) = Cv(3)                  ' ¥D¤O±±½L¶}½L»ùªì©l­È³]©w
  30.             Hv(3) = Cv(3)                  ' ¥D¤O±±½L³Ì°ª»ùªì©l­È³]©w
  31.             Lv(3) = Cv(3)                  ' ¥D¤O±±½L³Ì§C»ùªì©l­È³]©w
  32.         End If

  33.         turnKey = turnKey + 1
  34.         Sheets("µ¦²¤°O¿ý").Cells(10, 2) = turnKey & " ¬í"

  35.         If (Cv(1) > Hv(1)) Then Hv(1) = Cv(1) ' §PÂ_¦hªÅ¤O¹D³Ì°ª»ù
  36.         If (Cv(2) > Hv(2)) Then Hv(2) = Cv(2) ' §PÂ_¤Ï¦V¶Õ¤O³Ì°ª»ù
  37.         If (Cv(3) > Hv(3)) Then Hv(3) = Cv(3) ' §PÂ_¥D¤O±±½L³Ì°ª»ù
  38.          
  39.         If (Cv(1) < Lv(1)) Then Lv(1) = Cv(1) ' §PÂ_¦hªÅ¤O¹D³Ì§C»ù
  40.         If (Cv(2) < Lv(2)) Then Lv(2) = Cv(2) ' §PÂ_¤Ï¦V¶Õ¤O³Ì§C»ù
  41.         If (Cv(3) < Lv(3)) Then Lv(3) = Cv(3) ' §PÂ_¥D¤O±±½L³Ì§C»ù
  42.                
  43.     End If
  44.    
  45.     If (turnKey < nums) Then
  46.         Application.OnTime (Now + TimeValue("00:00:01")), "ThisWorkbook.ExeSelf"
  47.     Else
  48.         If (Cv(1) <> 0) Then Call Timer
  49.         ' Call Timer
  50.         Call timerStart
  51.     End If
  52. End Sub
½Æ»s¥N½X

TOP

¦^´_ 3# lieh_chun
¤W­±ªº¹ê¨Ò¨Ã«D¬O¼Ë¥»¡A¥¦¬O±N¨C¤@¬í±o O¡BH¡BL¡BC ¤À§O°O¿ý¤U¨Ó¡A·íº¡¨¬³]©w®É¶¡(¨Ò¦p¤@¤ÀÄÁ)
´N±N¸ê®Æ¼g¤J¨ì«ü©wÄæ¦ìÀx¦s¡A¦p¦¹¬ö¿ý¤Wªº¨C¤ÀÄÁ¶}½L»ù¡B³Ì°ª»ù¡B³Ì§C»ù¡B¦¬½L»ù³£°O¿ý¤U¡A
«K¥i°µ¤@¨Ç²Î­p¤ÀªR¤F¡C

TOP

¦^´_ 5# lieh_chun
§Ú¥u±N³B²z O¡BH¡BL¡BC ¡B ¥H¤Î¦p¦óÀ³¥Îªº¼Ò²Õ (¤w¶K¥Ü) ¶K¤W¡A¨ä¥¦³¡¤À¶·°t¦X
§A¹ê»ÚªºÀ³¥Î¡A¦]¨C­Ó¤H¤Á¤J¨¤«×ªº¤£¦P (¨é°Ó¡B»Ý¨D¡BÀ³¥Î­±µ¥)¡A¬G¦¹³B½×¾Â¶È¯à
´£¨Ñ§A­Ó¤H°Ñ¦Ò¡B¬ã¨s¡B¥H¤Î©¼¦¹¶¡¤§°Q½×¦Ó¤w ¡C
§A¥i¥H±N§A¥Ø«e¤w¦¨§ÎªºÀÉ®×¥Hªþ¥ó¤W¶Ç¡A¤j®a¦A¬Ý¬Ý¯à§_À°±o¤W¦£¡C

TOP

¦^´_ 7# lieh_chun
§A§âÀÉ®×·íªþ¥ó¶Ç¨Ó¡A¦AÀ°§A¬Ý¬Ý¦p¦ó­n¦p¦ó³B­ù¡A
¦]¬°§A­þ¤@­ÓÄæ¦ì¬O­þ¤@­Ó¡A¹ê¦bµLªk±oª¾¡C

TOP

¦^´_ 10# GBKEE
lieh_chun ¥L­nªº¬O½L¤¤ªº Open/High/Low/Close ¦Ó¤£¬O Max¡BMin¡C
¦^´_ 9# lieh_chun
¦]§AµLÅv­­¤U¸ü¡A©Ò¥H¥u¦n±Nµ{¦¡¶K¤W¡A§A±N¥¦¥þ³¡Âл\¨ì§Aªº ThisWorkbook µ{¦¡°Ï¤ºÀx¦s¡A¦A­«±Ò´N OK ¤F¡I
  1. Option Explicit
  2. Dim Ov As Single, Hv As Single, Lv As Single, Cv As Single, cIndex As Single
  3. Dim timerEnabled As Boolean    ' §P©w¶}±Ò¥»¤u§@ªí³æªº®É¬q¬O§_¬°¶}½L«e±Ò°Ê¡C
  4. Public turnKey As Integer

  5. Private Sub Workbook_Open()
  6.     timerEnabled = False

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

  9. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  10.     On Error Resume Next
  11.     Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkbook.ATimer", , False
  12.    
  13.     Me.Save
  14. End Sub

  15. Public Sub ATimer()
  16.     Dim Pos As Long             ' ±N¨C¹j "¦h¤Ö®É¶¡" ³B²z®É¬q¡A²¾¨ì¦¹³B¨Ó³B²z¡C
  17.    
  18.     On Error Resume Next
  19.     If (TimeValue(Now) > TimeValue("13:45:00")) Then Exit Sub
  20.    
  21.     If (TimeValue(Now) >= TimeValue("08:45:00")) Then         ' ¶}½L¡B¦¬½L®É¬q³]©w
  22.         ' ½L¤¤³B²z¡A±N¸ê®Æ¶×¤J¼g¤J¤u§@ªí³æ¤ºÀx¦s¡C
  23.         With Sheets("µ¦²¤°O¿ý")
  24.             Pos = .Range("B" & Rows.Count).End(xlUp).Row   ' ¨D¥X¸ÓÄ椧³Ì«á¨Ï¥Î¦C¼Æ  ' ¥Ø«e¬° 329
  25.             If (Pos < 2) Then Pos = 12
  26.             Pos = Pos + 1                   ' ±NÅܰʦ渹¥[¤@¦æ

  27.             If Not IsError(.[B2]) Then
  28.                 .[T1] = "¶}½L»ù"
  29.                 .[U1] = "³Ì°ª»ù"
  30.                 .[V1] = "³Ì§C»ù"
  31.                 .[W1] = "¦¨¥æ»ù"
  32.                 .[T2] = Ov      ' ¶}½L»ù
  33.                 .[U2] = Hv      ' ³Ì°ª»ù
  34.                 .[V2] = Lv      ' ³Ì§C»ù
  35.                 .[W2] = Cv      ' ¦¨¥æ»ù
  36.                  
  37.                  .Cells(Pos, 1) = Time           ' ®É¶¡
  38.                 ' ¦hªÅ¤O¹D¡B¤Ï¦V¶Õ¤O¡B¥D¤O±±½L¡B¤º¥~½L¤ñ%¡B¦¨¥æ»ù¡Bº¦¶^¡B
  39.                 ' Á`¶q¡B³Ì°ª¡B³Ì§C¡B¥[Åv«ü¼Æ¡Bº¦¶^¡B²Ö­p©e¶R¡B²Ö©e¶Rµ§¡B
  40.                 ' ²Ö­p©e½æ¡B²Ö©e½æµ§¡B°ò®t¡B©e¤ñ¡B©e¶R½æ®t¡B
  41.                 ' ¶}½L»ù¡B³Ì°ª»ù¡B³Ì§C»ù¡B¦¬½L»ù
  42.                 .Cells(Pos, 2).Offset(0).Resize(, 22) = .[B2:W2].Value
  43.             End If
  44.         End With
  45.     End If
  46. End Sub

  47. Sub timerStart()
  48.     turnKey = 0
  49.     Sheets("µ¦²¤°O¿ý").Range("B6").Value = 0
  50.    
  51.     If timerEnabled Then
  52.         ' ²Ä¤G¦¸(§t)¥H«á§¡¥H³]©w¤§ "¶¡¹j®É¬q" ¨Ó³B²z°õ¦æ§Çªº§@·~¡C
  53.         Application.OnTime (Now + TimeValue("00:00:01")), "ThisWorkbook.ExeSelf"
  54.     Else
  55.         timerEnabled = True
  56.         
  57.         ' ±N²Ä¤@¦¸±Ò°Ê®É¶¡§ó§ï¬°³]©w "¶}½L®É¶¡"«e¡A¦pªG¶}±Ò Excel ®É¡A¤w¸g¹L¤F³]©w "¶}½L®É¶¡"¡A«h¤@¶i¤J¨t²Î§Yª½±µ¥h°õ¦æ¬ö¿ý§@·~¡C
  58.         If (TimeValue(Now) <= TimeValue("08:45:00")) Then
  59.             Application.OnTime (TimeValue("08:45:00")), "ThisWorkbook.ExeSelf"
  60.         Else
  61.             ' ¨t²Î­è³s¤W DDE ¦Ü¸ê®Æ¶×¤JExcel¤u§@ªí³æ¡A¶·¦³¤@­Ó½w½Ä®É¬q¡A
  62.             ' ³o®É¦pªG°¨¤W¥h§ì¨úDDE¸ê®Æ¡A·|¦³«¬ºA¤£²Åªº¿ù»~°T®§²£¥Í¡A¨Ã¤¤Â_°õ¦æ§Çªº§@·~¡C
  63.             Application.OnTime (Now + TimeValue("00:00:05")), "ThisWorkbook.ExeSelf"
  64.         End If
  65.     End If
  66. End Sub

  67. Private Sub ExeSelf()
  68.     Dim nums As Integer            ' ¹w³]¬° 60 ¬í
  69.    
  70.     nums = 60
  71.     On Error Resume Next
  72.     If (TimeValue(Now) < TimeValue("08:45:00") Or TimeValue(Now) > TimeValue("13:46:01")) Then Exit Sub
  73.       
  74.     If IsError(Sheets("µ¦²¤°O¿ý").Range("F2").Value) Then
  75.         Cv = 0
  76.     Else
  77.         Cv = Sheets("µ¦²¤°O¿ý").Range("F2").Value    ' ¦¨¥æ»ù
  78.     End If
  79.          
  80.     If (turnKey = 0 Or Ov = 0) Then
  81.         Ov = Cv                                      ' ¶}½L»ù
  82.         Hv = Cv                                      ' ³Ì°ª»ù
  83.         Lv = Cv                                      ' ³Ì§C»ù
  84.     End If
  85.         
  86.     turnKey = turnKey + 1
  87.            
  88.     If (Cv > Hv) Then Hv = Cv                        ' ³Ì°ª»ù
  89.     If (Cv < Lv) Then Lv = Cv                        ' ³Ì§C»ù
  90.       
  91.     Sheets("µ¦²¤°O¿ý").Range("B6").Value = " ( " & turnKey & " ¬í )"
  92.    
  93.     If (turnKey < nums) Then
  94.         Application.OnTime (Now + TimeValue("00:00:01")), "ThisWorkbook.ExeSelf"
  95.     Else
  96.         If (Cv > 0) Then Call ATimer
  97.         If timerEnabled Then Call timerStart
  98.     End If
  99. End Sub
½Æ»s¥N½X
DDE for lieh_chun.rar (62.46 KB)

TOP

¦^´_ 10# GBKEE
±zªº¹Bºâ¤èªk§Ú·|©âªÅ¨Ó¸Õ¸Õ¬Ý¡A¥¦ªº½T¤]¬O¤£¿ùªº³B²z¤è¦¡¡A
§Ú¬O¥Î¤ñ¸ûª½±µªº¤è¦¡¨Ó³B­ù¡AÅܼơB»P°}¦Cªº¨Ï¥ÎÁöµ²ªG¤@¼Ë¡A
§Ú¹Ïªº¥u¬O¥H«á¦n Maintenance¡B¥B©ö§P§O¤§¬G¡C

TOP

¦^´_ 13# GBKEE
½Ð±Ð±z¥¦¬°¦ó¤@ª½¤£°Ê¡H Worksheet_Calculate() ¬O User Define Or Worksheet ¤º©wIJµoµ{¦¡¡H
¦]¬°§Ú«Ü¤Ö¨Ï¥Î Excel Ãþ¦ü¦¹Ãþªº¤èªk (Method)¡A ½Ð±z«ü¾É¡I
DDE for GBKEE.rar (10.12 KB)

TOP

¦^´_ 15# GBKEE
ÁÂÁ±zÅý§ÚÅé·|¨ì Excel method ªº¤@¨Ç¨Ï¥Î¡A¦ý§Úµoı DoEvents ´X¥G§¹¥þ¦û¾Ú¤F¾ã­Ó§@·~®É¶¡¡A
¦A¤À®É¤À¤u¤W·|¤£·|³y¦¨¬O¤@ºØ­t¾á©O¡H

TOP

¦^´_ 18# lieh_chun
¤W¶Ç§A¾ã²z¹L«á¤§ÀɮסI

TOP

¦^´_  c_c_lai
§Ú¬O¨Ï¥ÎEASYWINªºdde°T¸¹¡A¦pªG­n¨C30¬í°O¿ý¤@½ë¤W­±©Ò¦³ªº¸ê®Æ¸Ó¦p¦ó¼gVBA?¦]¬°®Mªí¤W¥h ...
ribbits µoªí©ó 2012-9-9 14:31

¶K¤Wµ{¦¡½X¡A¨Ñ§A°Ñ¦Ò¡G
  1. Option Explicit
  2. Dim timerEnabled As Boolean    ' §P©w¶}±Ò¥»¤u§@ªí³æªº®É¬q¬O§_¬°¶}½L«e±Ò°Ê¡C

  3. Private Sub Workbook_Open()
  4.     Dim Pos As Long             ' ±N¨C¹j "¦h¤Ö®É¶¡" ³B²z®É¬q¡A²¾¨ì¦¹³B¨Ó³B²z¡C
  5.     timerEnabled = False

  6.     Pos = Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row   ' ¨D¥X¸ÓÄ椧³Ì«á¨Ï¥Î¦C¼Æ
  7.     If (Pos <= 1) Then Pos = 1
  8.     Sheets("µ¦²¤°O¿ý").[A4] = "¤w¶×¤J " & (Pos - 1) & " µ§¸ê®Æ"
  9.     Call timerStart      ' µ{¦¡¤@±Ò©l¡A«K¥h¦Û°Ê°õ¦æ timerStart
  10. End Sub

  11. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  12.     On Error Resume Next
  13.     Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkbook.ATimer", , False
  14.    
  15.     Me.Save
  16. End Sub

  17. Public Sub ATimer()
  18.     Dim Pos As Long             ' ±N¨C¹j "¦h¤Ö®É¶¡" ³B²z®É¬q¡A²¾¨ì¦¹³B¨Ó³B²z¡C
  19.    
  20.     On Error Resume Next
  21.     ' If (TimeValue(Now) > TimeValue("13:45:00")) Then Exit Sub
  22.    
  23.     If (TimeValue(Now) >= TimeValue("08:45:00")) Then         ' ¶}½L¡B¦¬½L®É¬q³]©w
  24.         ' ½L¤¤³B²z¡A±N¸ê®Æ¶×¤J¼g¤J¤u§@ªí³æ¤ºÀx¦s¡C
  25.         With Sheets("Data")
  26.             Pos = .Range("B" & Rows.Count).End(xlUp).Row   ' ¨D¥X¸ÓÄ椧³Ì«á¨Ï¥Î¦C¼Æ
  27.             If (Pos <= 1) Then Pos = 1
  28.             Pos = Pos + 1                   ' ±NÅܰʦ渹¥[¤@¦æ
  29.             Sheets("µ¦²¤°O¿ý").[A4] = "¤w¶×¤J " & (Pos - 1) & " µ§¸ê®Æ"

  30.             If Not IsError(Sheets("µ¦²¤°O¿ý").[E2]) Then
  31.                  .Cells(Pos, 1) = Date                              ' ¤é´Á
  32.                  .Cells(Pos, 2) = Time                              ' ®É¶¡
  33.                  .Cells(Pos, 3) = Sheets("µ¦²¤°O¿ý").[E2]           ' ¦¨¥æ»ù
  34.                  .Cells(Pos, 4).Offset(0).Resize(, 3) = Sheets("µ¦²¤°O¿ý").[G2:I2].Value
  35.                  .Cells(Pos, 7) = Sheets("µ¦²¤°O¿ý").[K2]           ' ¦¨¥æ¶q
  36.                 .Cells(Pos, 8).Offset(0).Resize(, 8) = Sheets("µ¦²¤°O¿ý").[O2:V2].Value
  37.             End If
  38.         End With
  39.     End If
  40.     If timerEnabled Then Call timerStart
  41. End Sub

  42. Sub timerStart()
  43.     If timerEnabled Then
  44.         ' ²Ä¤G¦¸(§t)¥H«á§¡¥H³]©w¤§ "¶¡¹j®É¬q" ¨Ó³B²z°õ¦æ§Çªº§@·~¡C
  45.         Application.OnTime (Now + TimeValue("00:00:30")), "ThisWorkbook.ATimer"
  46.     Else
  47.         timerEnabled = True
  48.         
  49.         ' ±N²Ä¤@¦¸±Ò°Ê®É¶¡§ó§ï¬°³]©w "¶}½L®É¶¡"«e¡A¦pªG¶}±Ò Excel ®É¡A¤w¸g¹L¤F³]©w "¶}½L®É¶¡"¡A«h¤@¶i¤J¨t²Î§Yª½±µ¥h°õ¦æ¬ö¿ý§@·~¡C
  50.         If (TimeValue(Now) <= TimeValue("08:45:00")) Then
  51.             Application.OnTime (TimeValue("08:45:00")), "ThisWorkbook.ATimer"
  52.         Else
  53.             ' ¨t²Î­è³s¤W DDE ¦Ü¸ê®Æ¶×¤JExcel¤u§@ªí³æ¡A¶·¦³¤@­Ó½w½Ä®É¬q¡A
  54.             ' ³o®É¦pªG°¨¤W¥h§ì¨úDDE¸ê®Æ¡A·|¦³«¬ºA¤£²Åªº¿ù»~°T®§²£¥Í¡A¨Ã¤¤Â_°õ¦æ§Çªº§@·~¡C
  55.             Application.OnTime (Now + TimeValue("00:00:05")), "ThisWorkbook.ATimer"
  56.         End If
  57.     End If
  58. End Sub
½Æ»s¥N½X
¦]¬°§A¥Ø«eµLÅv¤U¸ü¡A©Ò¥H±N°õ¦æµe­±¶K¥Ü¡A§A¥u­n·ÓµÛ­×¥¿§Y¥i¡G

EASYWIN0909.rar (12.11 KB)

TOP

        ÀR«ä¦Û¦b : ·R¤£¬O­n¨D¹ï¤è¡A¦Ó¬O­n¥Ñ¦Û¨­ªº¥I¥X¡C
ªð¦^¦Cªí ¤W¤@¥DÃD