返回列表 上一主題 發帖

[發問] DDE資料紀錄問題

請問我執行程式時,為何會跳出''找不到巨集GetDDE''的警告視窗?懇請各位大大的回覆,謝謝

TOP

本帖最後由 GBKEE 於 2012-6-22 08:25 編輯

回復 11# usana642
本身的模組中 直接呼叫  程序名稱即可 ->  GetDDE

物件模組內 :工作表物件模組 (SHEET1 . SHEET2.....) , 活頁簿物件模組 ThisWorkbook ,中
公用:   Sub  GetDDE ()  =    Public Sub  GetDDE ()     Public  模組層次的關鍵字,用來宣告在所有模組裏的所有程序中都可以使用常數
在其他模組的程序中 乎叫GetDDE    ->    SHEET1.GetDDE
私用:  Private  Sub  GetDDE ()                                        Private 模組層次的關鍵字,用來宣告只在已宣告的模組裏才可以使用常數
在其他模組的程序中 乎叫GetDDE   ->     Run  "SHEET1.GetDDE"

一般模組內 :   Module1,中
Sub  GetDDE ()  =    Public Sub  GetDDE ()     在其他模組的程序中 乎叫GetDDE  ->      GetDDE
私用:  Private  Sub  GetDDE ()     在其他模組的程序中 乎叫GetDDE    ->    Run  "Module1.GetDDE"

TOP

非常感謝GBKEE大大的熱心分享,已經成功了,另外再請教,如果要加入台股或美股開收盤的接收時間,請問要如何修改?謝謝您
stock

TOP

再請教一個問題,如何將接收進來的資料時間修正為" 分鐘整數",例如 10:15:10  ---> 10:15:00 ,請問要如何修改?謝謝協助...
stock

TOP

回復 13# 14# usana642
可附檔上來看你如何寫的
PS:請按回復鍵 回文者才會知道的

TOP

回復 15# GBKEE


    不好意思,我就是按照超級版主的程式,程式如下:

Sub auto_open()'開檔時自動執行此巨集
GetDDE  '呼叫程序
End Sub
Sub GetDDE()
Dim T As Date
T = Now  '取得現在時間
If Not IsError(Sheets(1).[B2]) Then Sheets(2).[A65536].End(xlUp).Offset(1).Resize(, 7) = Sheets(1).[A2:G2].Value  '工作表1的資料DDE連結成功寫入工作表2
Application.OnTime T + TimeValue("00:00:02"), "GetDDE"  '這是以2秒測試,間隔5分鐘改成TimeValue("00:05:00"),
End Sub

我想

1.再加入台股或美股開收盤時間,來設定接收時間
2.將接收進來的資料時間修正為" 分鐘整數",例如 10:15:10  ---> 10:15:00

請問要如何修改?謝謝您的協助
stock

TOP

本帖最後由 GBKEE 於 2013-7-16 07:09 編輯

回復 16# usana642
  1. Option Explicit
  2. Sub Auto_Open() '開檔時自動執行此巨集
  3.     GetDDE  '呼叫程序
  4. End Sub
  5. Sub GetDDE()
  6.     Dim T As Date, A
  7.     'T = Now  'Now 包含日期     >1,,' T = Time '只有24小時的數值 <1
  8.     '輸入  #9:00#  ->系統自動成  #9:00:00 AM#
  9.     '輸入  #13:00# ->系統自動成  #1:00:00 PM#
  10.     '輸入  #00:05# ->系統自動成  #12:05:00 AM#   :  5分鐘
  11.     '------  1.再加入台股或美股開收盤時間,來設定接收時間
  12.     If Time > #9:00:00 AM# And Time < #1:30:00 PM# Then    '於交易時間內
  13.         If Not IsError(Sheets(1).[B2]) Then Sheets(2).[A65536].End(xlUp).Offset(1).Resize(, 7) = Sheets(1).[A2:G2].Value  '工作表1的資料DDE連結成功寫入工作表2
  14.     '------  2.將接收進來的資料時間修正為" 分鐘整數",例如 10:15:10  ---> 10:15:00
  15.     End If
  16.     T = Time + #12:00:30 AM#                         '--間隔30秒---------
  17.     'T = Time + #12:01:00 AM#                         '--間隔1分鐘---------
  18.     'T = Time + #12:05:00 AM#                         '--間隔5分鐘---------
  19.     Application.OnTime T, "GetDDE"
  20. End Sub
複製代碼

TOP

回復 17# GBKEE

再次非常感謝GBKEE大大的熱心協助
明天開盤再試看看,謝謝您
stock

TOP

回復 2# Hsieh
"Hsieh"大大你好
找資料中,看到這個我可用的資料

可是我無法執行
出現的訊息圖
檔案如右
能否大大幫我看一下
感恩

執行顯示錯誤01.png (69.11 KB)

執行顯示錯誤01.png

執行顯示錯誤02.png (27.1 KB)

執行顯示錯誤02.png

Book2.rar (6.92 KB)

slip

TOP

本帖最後由 GBKEE 於 2013-7-15 20:08 編輯

回復 19# slip
  1. '如程式碼ThisWorkbook物件模組中
  2. Private Sub Workbook_Open() 'ThisWorkbook物件模組:開啟擋預設自動執行的程序事件
  3.      GetDDE  '呼叫程序
  4. End Sub
  5. Sub GetDDE()
  6.     Dim T As Date
  7.     T = Now  '取得現在時間
  8.     If Not IsError(Sheets(1).[B2]) Then Sheets(2).[A65536].End(xlUp).Offset(1).Resize(, 7) = Sheets(1).[A2:G2].Value  '工作表1的資料DDE連結成功寫入工作表2
  9.     Application.OnTime T + TimeValue("00:00:30"), "ThisWorkbook.GetDDE"  '這是以2秒測試,間隔5分鐘改成TimeValue("00:05:00"),
  10.     'ThisWorkbook是物件模組,須加上模組的名稱
  11. End Sub
複製代碼
2# Hsieh超版 有說:[一般模組輸入以下程式碼,存檔後開啟檔案,測試看看] 如圖

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 難行能行,難捨能捨,難為能為,才能昇華自我的人格。
返回列表 上一主題