如何在 Excel 中設定和使用 RTD 函式

摘要

注意事項

在 Excel M365 2002 版或更新版本中,RealTimeData (RTD) 函式的效能已大幅增強。 如需詳細資訊,請參閱 Excel 效能和限制改善

本文說明 RealTimeData (RTD) 函式所提供的功能。 Microsoft Office Excel 提供工作表函式 RealTimeData (RTD) 。 此函式可讓您呼叫元件物件模型 (COM) 自動化伺服器以即時擷取數據。

當您必須建立包含即時更新數據的活頁簿時,例如財務數據或科學數據,您現在可以使用 RTD 工作表函式。 在舊版 Excel 中,動態數據交換 (DDE) 用於該用途。 RTD 函式是以 COM 技術為基礎,並提供強固性、可靠性和便利性的優點。 RTD 取決於 RTD 伺服器的可用性,讓 Excel 可以使用即時數據。 如需如何建立 RTD 伺服器的詳細資訊,請參閱一節。

RTD 函式會從 RTD 伺服器擷取要在活頁簿中使用的數據。 每當伺服器有新的數據可供使用,而且活頁簿可以接受時,函式結果就會更新。 伺服器會等到 Excel 閑置後再更新。 這可讓開發人員不必判斷 Excel 是否可接受更新。 RTD 函式與此方面的其他函式不同,因為只有在重新計算工作表時,才會更新其他函式。

雖然 RTD 函式提供伺服器上數據的連結,但它的連結類型與其他工作表或活頁簿中儲存格的參考不同。 例如,如果您在活頁簿中使用 RTD 函式,當您開啟活頁簿時不會收到鏈接啟動訊息,也無法透過 [編輯連結] 對話框管理 RTD 函式的狀態。

語法

RTD 函式會使用下列語法

=RTD (RealTimeServerProgID,ServerName,Topic1,[Topic2], ...)

其中函式自變數如下所示:

  • RealTimeServerProgID

    字串,表示安裝在本機系統上的 RTD 伺服器的程式識別碼。 這通常是由安裝程式或使用 RegSvr32 註冊的 COM 載入宏。 RealTimeServerProgID 是必要的自變數。

  • ServerName

    字串,表示要執行 RTD 伺服器的伺服器名稱。 如果 RTD 伺服器是在本機執行,則 ServerName 應該是空字串 (“”) 或省略。

  • Topic1, [Topic2], ...

    判斷要擷取之數據的字串。 您可以使用一到28個主題,雖然只需要一個主題。

使用 RTD

作為 RTD 函式的範例,請考慮從伺服器擷取資訊,該伺服器會為數個同時競爭中的執行器提供連續數據。 假設伺服器是以名為 RaceReport.dll 的動態連結庫 (DLL) 提供,且該伺服器已安裝在用戶的計算機上,且已由自己的安裝程式註冊為 COM 載入宏。 與此伺服器搭配使用的 RTD 函式一般形式可能如下所示

=RTD (“MyRTDServerProdID”,“MyServer”,“RaceNum”,“RunnerID”,“StatType”)

其中,主題 RaceNum、RunnerID 和 StatType 分別決定感興趣的競賽、需要數據的執行器,以及特定函式使用的數據類型。

在此,使用者可能會選取單元格,並在其中輸入下列公式

=RTD (“ExcelRTD.RaceReport”,“”,“2”,“16”,“Time”)

查看第 2 個競賽中執行器編號 16 的目前經過時間。 相關聯數據的主題數目和本質取決於 COM 伺服器的開發人員。 例如,如果您使用下列 RTD 函式,則競爭報告伺服器可能會傳遞不同的資料:

=RTD (“ExcelRTD.RaceReport”,“”,“3”,“25”,“Position”)

在此情況下,傳回的數據表示執行器數位 25 在競爭編號 3 中目前的位置。

如此一來,相同的函式可以在整個活頁簿中以不同的方式使用,以從相同的伺服器擷取不同的數據,而這些數據都會自動更新。

簡化使用方式的包裝函式

RTD 函式可以在 Microsoft Visual Basic for Applications 中的使用者定義函式 (UDF) 內使用。 這些會接著變成 RTD 函式的包裝函式。 這種方法有助於保護使用者不受 RTD 伺服器名稱和 ProgID 的詳細數據影響,以及讓他們只專注於對使用者很重要的數據。

例如,在先前的案例中,可能會提供兩個函式給使用者:GetTime (RunnerID) 和 GetPosition (RunnerID) 。 這些函式假設使用者一律處理相同的伺服器和競爭號碼。 因此,使用者只需要指定執行器的標識碼,即可分別接收執行器經過時間和位置的目前數據。

計算

因為 RTD 會在 Excel 閑置時更新數據,所以如果 Excel 處於手動計算模式,它會繼續接收資訊。 在此情況下,會快取新的數據,並在執行手動計算時使用目前的值。

安全性

RTD 伺服器應該以數位方式簽署。 如果 RTD 伺服器未經過數位簽署,則伺服器可能不會載入,而且 #N/A 會顯示在參考 RTD 伺服器 () 儲存格中。

針對 Microsoft Office Excel 2007,您可以使用信任中心來檢閱安全性設定。 您可以從 [Excel 選項] 對話方塊的 [信任中心] 索引標籤取此選項。

針對 Microsoft Office Excel 2003 和 Microsoft Excel 2002,您可以藉由調整 Excel 中的宏安全性設定來改變載入行為。

參考資料

如需 RTD 和 Excel 安全性的詳細資訊,請參閱 如何在 Excel 中設定和使用 RTD 函式

如需建立 RTD 伺服器的詳細資訊,請參閱 如何建立適用於 Excel 的 RealTimeData 伺服器