RTD 函數是 Excel 中少數能「持續更新」的函數之一,能從外部 COM 自動化伺服器即時接收資料。它適合用於金融報價、即時監控、IoT 數據串流等場景,並可取代傳統的 DDE(動態資料交換)方式。
🔹快速摘要(語法、用途、常見場景)
用途:從 COM 自動化伺服器擷取即時資料
語法:=RTD(ProgID, server, topic1, [topic2], ...)常見場景:股票報價、匯率更新、感測器數據、即時監控、金融交易平台串接
一、RTD 函數語法與用途
=RTD(ProgID, server, topic1, [topic2], ...)
- ProgID:COM 增益集的註冊名稱(如 "myaddin.rtdserver")
- server:伺服器名稱,若為本機可留空
- topic1~topic253:最多 253 個主題參數,用於指定資料內容
RTD 函數會持續更新儲存格內容,只要伺服器有新資料推送。
二、範例教學:五個基礎 + 五個進階範例
🔸基礎範例
範例一:本機股票報價
=RTD("stockfeed.rtdserver", , "AAPL", "LastPrice")
說明:從本機安裝的 RTD 增益集取得 AAPL 的即時價格。
範例二:指定伺服器取得資料
=RTD("sensor.rtd", "192.168.1.10", "溫度", "Sensor01")
說明:從遠端伺服器取得指定感測器的溫度。
範例三:匯率即時更新
=RTD("fx.rtdserver", , "USD", "TWD")
說明:取得美元對台幣的即時匯率。
範例四:顯示錯誤處理
=IFERROR(RTD("stockfeed.rtdserver", , "TSLA", "Bid"), "無資料")
說明:若伺服器未連線,顯示「無資料」。
範例五:多參數組合查詢
=RTD("market.rtd", , "TWSE", "0050.TW", "成交量")
說明:查詢台灣加權指數 ETF 的成交量。
🔸進階範例
範例六:搭配 VBA 控制更新頻率
說明:可透過 VBA 設定 Application.RTD.ThrottleInterval 控制更新間隔(預設2秒)。
範例七:搭配圖表即時顯示
說明:將 RTD 結果作為圖表來源,實現即時資料視覺化。
範例八:搭配資料驗證切換主題
說明:用下拉選單切換 topic1,讓 RTD 自動切換資料來源。
範例九:多儲存格批次引用
說明:用公式拖曳方式建立多筆即時資料監控表。
範例十:與 Power Query 整合(間接)
說明:雖然 Power Query 不支援 RTD,但可將 RTD 結果儲存為表格供其引用。
三、常見問題解答(FAQ)
Q1:RTD 是否需要安裝額外元件?
是,必須安裝並註冊支援 COM 的 RTD 增益集,否則會回傳 #N/A。
Q2:RTD 可以在 Excel 64 位元使用嗎?
取決於增益集是否支援 64 位元版本,部分舊版僅支援 32 位元。
Q3:RTD 與 DDE 有何不同?
RTD 更穩定、安全,支援多執行緒與 COM 架構,建議取代 DDE。
Q4:RTD 可以自訂更新頻率嗎?
可以,透過 VBA 設定 Application.RTD.ThrottleInterval(單位:毫秒)。
Q5:RTD 是否支援雲端 Excel?
不支援,RTD 僅適用於桌面版 Excel。
四、注意事項與錯誤排除
- 若未安裝 RTD 增益集,會回傳 #N/A 錯誤。
- RTD 僅支援桌面版 Excel,不適用於 Web 或 Mac 版。
- topic 參數順序與格式需符合伺服器定義,否則無法正確回傳資料。
- 若伺服器未啟動或連線中斷,資料不會更新。
- RTD 為 volatile 函數,會頻繁觸發重新計算,需注意效能。
五、延伸技巧與相關函數
- IFERROR:處理伺服器未連線或資料錯誤情況。
- TEXT/ROUND:格式化即時資料顯示。
- VBA:控制更新頻率與觸發條件。
- CHOOSE/DATA VALIDATION:建立可切換主題的 RTD 查詢介面。
- CHARTS:將 RTD 結果串接圖表,實現即時視覺化。
六、結語與延伸閱讀推薦
RTD 函數是 Excel 中少數支援即時更新的函數,適合用於金融、感測器、IoT 等場景。雖然使用門檻較高(需安裝增益集),但能大幅提升 Excel 的即時互動能力。若你需要穩定、即時的資料串流,RTD 是比 DDE 更安全且現代化的選擇。
















