Board logo

標題: 請問一個圖表隨時間步進的一個vba問題 [打印本頁]

作者: laieven    時間: 2016-9-27 18:45     標題: 請問一個圖表隨時間步進的一個vba問題

我希望做一個現貨以及期貨的價差表
數據從dde接收進來
連結到工作表1的b2和b3
每間隔一分鐘紀錄一次

並將指數會製成圖表,並且只顯示最新的60筆資料
我寫在
Private Sub Worksheet_Calculate()之下

打開後發現不會動!!!但是只要我在工作表做個刪除列的動作!!
就會正常作動!!

請問是否是因為我並不是在dde正常串接時間,所以不會正常作動
或者因為其他問題呢?

附上檔案請先進指點!!有勞了!!
作者: jackyq    時間: 2016-9-27 19:36

刪除列 -> Worksheet_Calculate 會執行
dde動  -> Worksheet_Calculate 會執行
作者: c_c_lai    時間: 2016-9-28 07:18

回復 1# laieven
DDE 的指定輸入欄位資料匯入或異動, 經測試經驗 Worksheet_Change
以及 Worksheet_Calculate 都不會被觸動的。
一般解決之道,是用定時掃描方式來處理此一困惱問題。
作者: laieven    時間: 2016-9-29 12:17     標題: 請教動態圖表範圍---->儲存格的值隨著時間變動的問題

[attach]25389[/attach]

這個値的變動是要用應到動態圖表中
讓圖表隨著時間把最新的圖表顯示出來

我的想法是可以把他寫在workshee calculate中
讓檔案一開啟就進入計算
當然圖表的數據是用dde串連進入excel中
作者: laieven    時間: 2016-9-29 12:23

回復 3# c_c_lai


感謝回應!!我了解了!!
早上我也測試了一下!!正常的部份是沒問題的!

剩下的問題我另外發問了
也請先進不吝指導!!感謝
作者: GBKEE    時間: 2016-10-2 10:33

本帖最後由 GBKEE 於 2016-10-2 10:37 編輯

回復 3# c_c_lai

DDE 的指定輸入欄位資料匯入後值的異動,Worksheet_Calculate 是會被觸動的

回復 4# laieven
試試看
  1. Option Explicit
  2. Private Sub Worksheet_Calculate()
  3.     Dim NowDateTime, nowTime, startTime, stopTime, t As Integer
  4.     Dim tr As String
  5.     'Application.ScreenUpdating = False
  6.     NowDateTime = Now '現在的時間值, 去掉整數部份,
  7.     nowTime = (NowDateTime - Int(NowDateTime)) '得到現在的時間值
  8.     startTime = Range("A2") '開盤時間, 例如: "09:00:00 AM"
  9.     stopTime = Range("A3")  '收盤時間, 例如: "01:30:00 PM"
  10.     If nowTime <= startTime Then '尚未開盤
  11.                 Exit Sub
  12.     ElseIf nowTime > stopTime Then '已經收盤
  13.                 Exit Sub
  14.     ElseIf Range("B2") <> "-" And Range("B2") <> "###" Then '清盤的狀態, 不取其資料
  15.            '     xy = Int((nowTime - startTime) * 1440) + 1   '每差 300 秒就換一列
  16.            '     Range("g1").Value = xy
  17.            '     Range("g2").Value = xy + 59

  18.         t = Application.Text(Time - [A6], "[M]") + 1  '計算間格的分鐘
  19.         Range("B5").Offset(t).Resize(, 4) = Range("B2:E2").Value
  20. End If
  21. 'Application.ScreenUpdating = True
  22. Application.StatusBar = Time
  23. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)