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

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

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

ºô¯¸¦U¬°¥ý¶i±z¦n~
·Q½Ð±Ð¤@¤U,¤p§Ì¥Ø«e¬O¤Ó¥­¬vÃÒ¨÷§ì¨úDDE¬ÛÃö¸ê®Æ¨ìEXCEL,,¦A¥Î²³æªºEXCELµ{¦¡¥h³Ì¹Bºâ,
·Q½Ð±Ð¤@¤U,¦pªG§Ú­n¥h°O¿ý¨C¤ÀÄÁK½uªº°ª§C»ù,¸Ó¦p¦ó¥h¼g£z??
½Ð¦U¬°´£¨Ñ·N¨£
·PÁ¸U¤À

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

¦^´_ 2# c_c_lai

ªO¤j±z¦n~
·PÁ±z¼ö¤ß¤À¨É,§Ú·Q­nªº´Á³f¨C¤ÀÄÁªº¦¨¥æ»ù°ªÂI©M§CÂI,¤£ª¾¸Ó¦p¦ó¥h½s¼g??
¥t¥~½Ð±Ð¤@¤U,¦pªG­n°O¿ý¨C¤ÀÄÁ´Á³f¦¨¥æ»ùªº°ª§CÂI,¬O¤£¬O´N­n§ï¦¨¨C¬í¼g¤JÁÙ¬O¨Cµ§¼g¤J£z??

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

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

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

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

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

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

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

        ÀR«ä¦Û¦b : ¡i®É¶¡¦¨´N¤@¤Á¡j®É¶¡¥i¥H³y´N¤H®æ¡A¥i¥H¦¨´N¨Æ·~¡A¤]¥i¥HÀx¿n¥\¼w¡C
ªð¦^¦Cªí ¤W¤@¥DÃD