返回列表 上一主題 發帖

[發問] 關於盤中DDE紀錄

1.假設將DATA欄位 X5.X6.Y5.Y6刪除,剛試過執行巨集時會當掉
2.Y5欄位如果紀錄資料匯入相隔時間,如每隔五分鐘寫入一次,剛看此欄位為12:05:00 AM,這樣對嗎?
3.另打開看盤軟體,打開此EXCEL檔案後,他會自動執行巨集,還是要手動去按才會執行巨集?  煩請大哥指教,謝謝。
devidlin

TOP

回復 11# devidlin
可參考一下
  1. 'DDE 資料紀錄問題 在'一般模組(Module1)的程式碼
  2. Option Explicit
  3. Dim 開盤 As Range, 收盤 As Range, 間隔 As Range, 次數 As Range, Time_Dee As Date
  4. '------在一般模組(Module1)不起作用的----------------
  5. 'Private Sub Workbook_Open()                          '是 ThisWorkbook的程序 此活頁簿關閉時 自動執行的程式
  6. 'Private Sub Workbook_BeforeClose(Cancel As Boolean)  '是 ThisWorkbook的程序 此活頁簿關閉時 自動執行的程式
  7. '---------------------------------------------------
  8. Private Sub Auto_Open()    '---* 一般模組(Module1)的程序 此活頁簿開啟時 自動執行的程式
  9.     StartProcedure
  10. End Sub
  11. Private Sub Auto_Close()   '---* 一般模組(Module1)的程序 此活頁簿關閉時 自動執行的程式
  12.     StopProcedure
  13.     ThisWorkbook.Save
  14. End Sub
  15. Sub StartProcedure()
  16.     '----- 可設 按鈕 指定此巨集手動應用-------
  17.     '------啟動 Dee_Set 程序的 執行巨集-------
  18.     If 收盤 Is Nothing Then Time_Set                        '變數未設定
  19.     If Sheets("Sheet1").[A2] <> Date Then Sheets("Sheet1").UsedRange.Offset(1) = ""
  20.                                                             '當日第一此開啟檔案 清除就有Dee資料
  21.     If Time > 收盤 Then                                     '已過 收盤時間
  22.         MsgBox "已過 " & 收盤
  23.     Else                                                    '未到 收盤時間
  24.         If Time >= 開盤 And Time <= 收盤 Then               '股市交易時間內
  25.             If Time_Dee > 開盤 Then Exit Sub                '預防重復:' 下次執行 Dee_Set 的時間大於開盤時間
  26.             Dee_Set
  27.         Else                                                '未開盤前
  28.             次數 = 0                                        '清除昨日紀錄 DEE 次數
  29.             Time_Dee = #8:30:00 AM#
  30.             Application.OnTime Time_Dee, "Dee_Set"
  31.             MsgBox "預定 於   " & #8:30:00 AM# & "更新 Dee資料"
  32.         End If
  33.     End If
  34. End Sub
  35. Sub StopProcedure()
  36.     '----- 可設 按鈕 指定此巨集手動應用-------
  37.     '------停止 Dee_Set 程序的 執行巨集-------
  38.     On Error Resume Next
  39.    Application.OnTime Time_Dee, "Dee_Set", , False
  40.    Time_Dee = #12:00:00 AM#                 '下次執行 Dee_Set 的時間: 小於開盤時間
  41. End Sub
  42. Private Sub Time_Set()                      '變數 設定
  43.     With Sheets("DATA")
  44.         Set 開盤 = .Range("X5")             '開盤時間
  45.         Set 收盤 = .Range("Y5")             '收盤時間
  46.         Set 次數 = .Range("X6")             '紀錄 DEE 次數
  47.         Set 間隔 = .Range("Y6")             '匯入DEE的 時間間隔
  48.         開盤 = "8:30:00"
  49.         收盤 = "13:30:00"
  50.         If 間隔 = "" Then 間隔 = "00:01:00" '未設未設立 間隔
  51.     End With
  52. End Sub
  53. Private Sub Dee_Set()
  54.     If Time > 收盤 Then Exit Sub
  55.     '----------紀錄 DEE -----------
  56.     Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(1, 22).Value = Sheets("DATA").[A2:v2].Value
  57.      次數 = 次數 + 1                        ' 切記 Counter (計數器) 要加一,否則永遠為零 (當然已也可以不予紀錄資料列述,依個人習性)。
  58.     Time_Dee = Time + 間隔                  '下次執行 Dee_Set 的時間
  59.     Application.OnTime Time_Dee, "Dee_Set"
  60. End Sub
複製代碼

TOP

回復 12# GBKEE
原來 Module1 和 ThisworkBook 之間的置放有這些 Open以及Close的區別,
我將它記錄起來了,謝謝 GBKEE 大大的解說。

我發覺前天與昨日間的提問及回文都不翼而飛,是被刪除了,抑或論壇的資料庫發生了問題?

TOP

小弟也想知道,提問及回文都不翼而飛,是被刪除了,抑或論壇的資料庫發生了問題?
devidlin

TOP

我也有阿 應是 論壇的資料庫發生了問題

TOP

請教此盤中DDE紀錄…可否適用康和e閃電的下單軟體嗎?

TOP

        靜思自在 : 人的心地是一畦田,土地沒有播下好種子,也長不出好的果實。 -
返回列表 上一主題