返回列表 上一主題 發帖

執行時間問題?

回復  c_c_lai


    小弟明瞭您的意思,原來寶來環球通不像easywin的dde有程式碼代號,所以寶來環球通 ...
devidlin 發表於 2012-6-27 18:00

蠻好奇它是怎麼連結的, Anyway 我依據你現有的資料 (new.xls) 將 VBA 程式撰寫完畢,(請留意每個模組間的互動關係)
方便今後你能即時測試,為明瞭各個工作表單所具特性並同時將它們 Rename成 "DDE連結"、及 "策略紀錄"。
你每日 08:45 前連線後,它會等到了 08:45 便自動執行資料匯入,之後每隔一分鐘便執行一次;
直到 13:45 一過便自動停止,一切自動化。 接下來,就要靠你自個兒鑽研了。
祝 晚安!
DDE連結.rar (13.24 KB)

TOP

回復 31# c_c_lai


    感謝版大的協助,有空明天我再來測試,謝謝您。
devidlin

TOP

回復 32# devidlin
有答案時再告訴我。
說真格的,我對於你說的寶來點精靈之連結方式感到蠻好奇的。

TOP

回復 31# c_c_lai
這樣也會自動化
DDE連結工作表模組程式碼
  1. 'DDE連結 工作表的預設事件 :  當公式資料有變動時會觸發此事件
  2. Dim TheTime As Date  '記錄下一分鐘的時間 : DDE連結工作表模組的私用變數
  3. Private Sub Worksheet_Calculate()
  4.      Application.EnableEvents = False
  5.     If IsError([C2]) Or Time < #8:45:00 AM# Then
  6.         Sheets("策略記錄").[a1].CurrentRegion.Offset(1).Clear
  7.         Application.EnableEvents = True
  8.         Exit Sub
  9.     ElseIf Time > #1:30:00 PM# Then
  10.        Application.EnableEvents = True
  11.         Exit Sub
  12.     End If   
  13.     If CDbl(TheTime) = 0 Or TheTime <= Time Then    ' TheTime變數未給值  or   記錄下一分鐘的時間>= Time
  14.         With Sheets("策略記錄")
  15.             .Cells(.Rows.Count, 1).End(xlUp).Offset(1).EntireRow = Rows(2).Value
  16.         End With
  17.         TheTime = TimeSerial(Hour(Time), Minute(Time), 0) + #12:01:00 AM#
  18.     End If
  19.     Application.EnableEvents = True
  20. End Sub
複製代碼

TOP

回復 34# GBKEE
謝謝您!
請教 TheTime = TimeSerial(Hour(Time), Minute(Time), 0) + #12:01:00 AM# 的用意何在?
為何偏偏加上 12:01:00,是指向下一分鐘嗎? 如果是的話,為何不是 00:01:00 ?

TOP

回復 35# c_c_lai
  1. '#   #  為系統輸入日期時間的關鍵字
  2. '#00:00#  系統自動生成 -> #12:00:00 AM#
  3. '#11:59#  系統自動生成 -> #11:59:00 AM#
  4. '#13:01#  系統自動生成 -> #1:01:00 PM#
  5. '#23:01#  系統自動生成 -> #11:01:00 PM#
  6. Option Explicit
  7. Sub Ex()
  8.     Dim TheTime As Date, xTime As Date
  9.     MsgBox "#11:59:59 AM# + #12:00:01 AM#" & Chr(10) & CDate(#11:59:59 AM# + #12:00:01 AM#)
  10.     TheTime = #8:45:05 AM#
  11.     xTime = TimeSerial(Hour(TheTime), 0, 0)
  12.     MsgBox xTime
  13.     xTime = TimeSerial(Hour(TheTime), Minute(TheTime), 0)
  14.     MsgBox xTime
  15.     xTime = TimeSerial(Hour(TheTime), Minute(TheTime), 0) + #12:01:00 AM#
  16.     MsgBox xTime
  17. End Sub
複製代碼

TOP

回復 36# GBKEE
多謝指點!
很棒的範例,易懂但會腦筋打死結的!

TOP

        靜思自在 : 每天無所事事,是人生的消費者,積極、有用才是人生的創造者。
返回列表 上一主題