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

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

¦^´_ 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

¦^´_ 11# c_c_lai
lieh_chun ¥L­nªº¬O½L¤¤ªº Open/High/Low/Close ¦Ó¤£¬O Max¡BMin¡C
9# §Ú­n°O¿ý¨C¤ÀÄÁ¦¨¥æ»ùªº³Ì°ª¤Î³Ì§CÂI    10#µ{¦¡½X¥i¹F¦¨¦¹®ÄªG
Open/High/Low/Close ¤£¬O¹ïÀ³µÛ¨C¤ÀÄÁªº  AR(0)'¶}½L»ù /Application.Max(AR)'³Ì°ª»ù / Application.Min(AR)'³Ì§C»ù /AR(UBound(AR))'¦¬½L»ù

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

¦^´_ 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

¦^´_ 9# lieh_chun
  1. '[µ¦²¤°O¿ý] ¤u§@ªíªºµ{¦¡½X(­«ºâ¨Æ¥ó )
  2. Private Sub Worksheet_Calculate()
  3.     Static Msg As Boolean                      '¥Î¥H§P©w¬O§_¬°¨C¤é²Ä¤@¦¸°õ¦æ
  4.     Static Time_Calculate As Date              '°O¿ý¨C¤ÀÄÁªº®É¶¡
  5.     Static AR                                  '°}¦C:°O¿ý¦¨¥æ»ù®æ
  6.     If Time < #8:30:00 AM# Then Exit Sub
  7.     Application.EnableEvents = False           '°±¤îª«¥ó¯àIJµo¨Æ¥ó(Worksheet_Calculate)
  8.     If Msg = False Then
  9.         Time_Calculate = TimeSerial(Hour(Time), Minute(Time), 0) '¨C¤ÀÄÁªº®É¶¡
  10.         Range("A12").CurrentRegion.Offset(1) = ""                '²M²z¬Q¤é¸ê®Æ
  11.         ReDim AR(0)                                              '­«·s³]¬°¤@¤¸¯À
  12.     End If
  13.     Msg = True
  14.     If Time >= Time_Calculate + #12:01:00 AM# Then
  15.             With IIf([A13] = "", [A13], Cells(Rows.Count, 1).End(xlUp).Offset(1))
  16.                 .Cells(1, 1) = Time_Calculate                    '®É¶¡
  17.                 .Cells(1, 2) = AR(0)                             '¶}½L»ù
  18.                 .Cells(1, 3) = Application.Max(AR)               '³Ì°ª»ù
  19.                 .Cells(1, 4) = Application.Min(AR)               '³Ì§C»ù
  20.                 .Cells(1, 5) = AR(UBound(AR))                    '¦¬½L»ù
  21.             End With
  22.             Time_Calculate = TimeSerial(Hour(Time), Minute(Time), 0)
  23.             ReDim AR(0)
  24.     End If
  25.     If AR(UBound(AR)) <> "" Then ReDim Preserve AR(UBound(AR) + 1) '­«·s¦A¥[¤W¤@¤¸¯À
  26.     AR(UBound(AR)) = [f2]                                          '°O¿ý¦¨¥æ»ù®æ¦¨¥æ»ù
  27.     Application.EnableEvents = True           '«ì´_ª«¥ó¯àIJµo¨Æ¥ó(Worksheet_Calculate)
  28. End Sub
½Æ»s¥N½X

TOP

¦^´_ 8# c_c_lai
±z¦n~
ªþÀɬ°§Ú¥Ø«e¥Î³Ì²³æªº®É¶¡¥h¬ö¿ý¬ÛÃö¸ê®Æ,´X­Ó°ÝÃD½Ð±Ð
¦pªG­nÅý¥¦¦Û°Ê¼g¤J,¦Ó¤£³z¹L«e¤@­¶¤Ó¥­¬v¦n¯«³qªºDDE§ì¨ú
¸Ó¦p¦ó­×§ïµ{¦¡½X??¥t¥~¦b½Ð±Ð  ¦pªG§Ú­n°O¿ý¨C¤ÀÄÁ¦¨¥æ»ùªº³Ì°ª¤Î³Ì§CÂI
¤S¸Ó¦p¦ó§ì¨ú£z??·Ð½Ð±zÀ°¦£¸Ñ´b

·PÁ±z!!

DDE.rar (57.81 KB)

TOP

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

TOP

¦^´_ 6# c_c_lai

±z¦n~
§Úªº¥u¬O¥Î«Ü²³æªº¸ê®Æ¥h§ì¨ú¤@¨Ç¬ÛÃö¸ê®Æ¥u¦³³]©w¨C¤ÀÄÁ§ì¨úDDEÀx¦s®æªº¸ê®Æ¨Ó°µ¬ö¿ý
±z¬Ý¤@¤U

Option Explicit
Dim LastMin As Integer

Private Sub Workbook_Open()
    Sheets("µ¦²¤°O¿ý").Cells(4, 2) = 12
    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(1, 1) = Time '±N®É¶¡show¦Üµ¦²¤ªºa1Äæ¦ì
    Dim HHMM As Integer
    HHMM = Hour(Time) * 100 + Minute(Time)
    If (HHMM < 830 Or HHMM > 1346) 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)
            .Cells(Pos, 11) = .Cells(2, 11)
            .Cells(Pos, 12) = .Cells(2, 12)
            .Cells(Pos, 13) = .Cells(2, 13)
            .Cells(Pos, 14) = .Cells(2, 14)
            .Cells(Pos, 15) = .Cells(2, 15)
            .Cells(Pos, 16) = .Cells(2, 16)
            .Cells(Pos, 17) = .Cells(2, 17)
            
            



         
        End With
   
        LastMin = Minute(Time)
    End If
End Sub


¹³±z¶KªºÀÉ®×,§Ú´N¯uªº¤£ª¾¹DÁÙ­n­×§ï­þÃä,¤~¯à¦Û°Ê¼g¤J¤F,·Ð½Ð±z±Ð¾É¤@¤U(¦]¬°§Ú§¹¥þ¤£À´VBA½s½X........½Ð§O¨£¯º)
¥t¥~·Q¦V±z½Ð±Ð¤@¤U,±z¦³6¤ë¥H«eªº¥x«ü©_¦hªÅ¤O¹Dªº¸ê®Æ¤Î¦¨¥æ»ù£v??

·PÁ±z

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

¦^´_ 4# c_c_lai

·PÁªO¤j¼ö¤ß¤À¨É,¹ï©óEXCEL¼gVBA,§Ú¬O§¹¥þªù¥~º~,«_¬N½Ð±Ð,§Ú¦pªG¦p±µ½Æ»s±zªºµ{¦¡½X¨ìEXCEL ½s½X¨º¶K¤W,¥i¥H°õ¦æ¸Õ¶]£v
ÁÙ¬O¦³­þÃä»Ý­n¦A­×§ï¤~¯à¶]??·PÁ¤À¨É:)

TOP

        ÀR«ä¦Û¦b : ¤â¤ß¦V¤U¬O§U¤H¡A¤â¤ß¦V¤W¬O¨D¤H¡F§U¤H§Ö¼Ö¡A¨D¤Hµh­W¡C
ªð¦^¦Cªí ¤W¤@¥DÃD