Board logo

標題: EXCEL接收即時數據時,若有搭配折線圖會運算慢的問題 [打印本頁]

作者: wengin66    時間: 7 天前 15:12     標題: EXCEL接收即時數據時,若有搭配折線圖會運算慢的問題

版主及各位大大  您好:
小弟有一事請教。
我用excel 接收看盤軟體dde的資料,可以每1秒接收一筆資料,也就是每一秒有一個欄位的數據,但是如果盤中把這些資料,化成折線圖的話,就會變成約每8秒,才能接收一筆資料,請問這有解決之道嗎?
我試過同一台電腦,盤中同時開兩套看盤軟體,第一套看盤軟體有圖形,一樣是約8秒才能產出紀錄一筆數據,第二套看盤軟體,則沒有圖形,但也是約4秒才能產生紀錄一筆數據。
作者: wengin66    時間: 7 天前 23:30

版主及各位大大  您好:
小弟有一事請教。
我用excel 接收看盤軟體dde的資料,可以每1秒接收一筆資料,也就 ...
wengin66 發表於 2018-11-8 15:12



  麻煩大大幫我看看是否可以有優化的地方~~~感恩[attach]29655[/attach]
作者: GBKEE    時間: 6 天前 18:07

回復 2# wengin66
以下是VBA 的說明

Application.OnTime 方法
安排一個程序在將來的特定時間執行 (既可為某個日期的指定時間,也可為指定的時間之後)。
語法 運算式.OnTime(EarliestTime, Procedure, LatestTime, Schedule)
參數
名稱 必要/選用 資料類型 描述
EarliestTime 必要 Variant 想要執行程序的時間。

Procedure 必要 String 要執行的程序名稱。
'LatestTime 選用 Variant 可以開始執行程序的最晚時間。例如,假設 LatestTime 設為 EarliestTime + 30,當時間到了 EarliestTime 時,如果由於其他程序正在執行中而使 Microsoft Excel 不處於 [就緒]、[複製]、[剪下] 或 [尋找] 模式,則 Microsoft Excel 會等待 30 秒以完成第一個程序。如果 30 秒內 Microsoft Excel 無法回到 [就緒] 模式,則不會執行此程序。如果省略此引數,Microsoft Excel 會一直等到可以執行該程序為止。 ****關鍵在這可能是在等候這檔案公式上的運算  ***

Schedule 選用 Variant 若為 True,排程新的 OnTime 程序。若為 False,清除先前設定的程序。預設值為 True。

另修正你各圖表上名稱參照的位置應是從第14開始,(為何從24)
  1. Sub Ex()
  2.     Dim N As Name
  3.     For Each N In ThisWorkbook.Sheets("Sheet1").Names
  4.         N.RefersToR1C1 = Replace(N.RefersToR1C1, "R24", "R14")  '修正為第14列開始
  5.         N.RefersToR1C1 = Replace(N.RefersToR1C1, "-1", "-2")    '-1 會多一格空格
  6.         Debug.Print N.Name, N.RefersToR1C1
  7.     Next
  8. End Sub
複製代碼

作者: wengin66    時間: 6 天前 21:33

回復 3# GBKEE

感謝版主的指導~~~




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