Excel RTD 函數無法傳回陣列

文章翻譯 文章翻譯
文章編號: 286258 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

結論

Microsoft Excel 2002、 Microsoft Office Excel 2003 和 Microsoft Office Excel 2007 提供新的工作表函式,稱為 RTD。RTD 可讓您呼叫 Microsoft 元件物件模型 (COM) 自動化伺服器,以擷取即時資料。RTD 函數不能傳回陣列。如果 RTD 函數用於做為陣列公式,所有陣列中的儲存格會傳回 # VALUE。

其他相關資訊

RealTimeData (RTD) 伺服器] 和 [RTD 函數的固有的彈性使得使用不必要的陣列公式中。[RTD 函數可以採取任意數目的字串或主題來指定要顯示在儲存格中的資料。利用額外的主題字串記載的 RTD 伺服器可以傳回單一值。Excel 僅必須讓對 RTD 伺服器從 RTD 伺服器擷取所有資料的單一呼叫。因此,這項設計不會不損及效能。

與這記住,您有時候可能需要以傳回單一主題的值的陣列 RTD 伺服器,您也可能會需要該陣列可剖析成多個儲存格的值]。在這種情況下 RTD 伺服器可以傳回單一字串,包含所有的值。然後,您可以使用應用程式 (VBA) 函式的 Microsoft Visual Basic 來剖析字串,因此資料可以傳回至工作表做為陣列。Excel 可以使用 評估 方法來解譯它的字串格式,做為陣列。這個字串置於大括號、 資料行以逗號,分隔,而且以分號分隔的資料列。比方說 Excel 可以將下列字串解譯為具有 3 個資料列和 4 的資料行的陣列:
{1、 2、 3、 4; 10、 20、 30、 40; 100,200、 300、 400}
或 Excel 可以做為陣列具有兩列 5 行 interpet 下列字串:
{"a"、"b"、"c","d","e";"aa",bb"、"cc"、"dd"、 ee"}
下列 procedue 說明可用於剖析成多個儲存格從 RTD 伺服器會傳回這個型別的字串的技巧。

要這麼做,請您執行下列步驟:
  1. 為下列 「 知識庫 」 文件所述的 RTD 伺服器建立 Visual Basic 專案:
    285339如何建立的 Excel RealTimeData 伺服器
  2. 在專案的 RTDFunctions 類別模組,取代 IRtdServer_RefreshData 函式中的這行程:
    aUpdates(1, n) = oTopic.TopicValue
    					
    取代成下列程式碼行的程式碼:
    Static bToggle As Boolean
    bToggle = Not (bToggle)
    If bToggle Then
       aUpdates(1, n) = "{1,2,3;10,20,30}"
    Else
       aUpdates(1, n) = "{""a"",""b"",""c"";""d"",""e"",""f""}"
    End If
    					
  3. 建置 RTD 伺服器從 Visual 基本的專案。
  4. 在 Excel 2002 中、 Office Excel 2003 中或 Office Excel 2007,啟動新的活頁簿並再按 ALT + F11 以開啟 Visual Basic 應用程式編輯器 」。
  5. Visual Basic 應用程式專案中插入新的程式碼模組,然後再新增下列程式碼範例程式碼模組
    Function parseArrayData( arrayData as String ) as Variant
       parseArrayData = Evaluate( arrayData )
    End Function
    					
  6. 關閉 Visual Basic 的應用程式編輯器] 回到 Excel 活頁簿。
  7. 請選取兩個資料列三欄的工作表上的儲存格範圍。
  8. 輸入下列公式,然後按下 CTRL + SHIFT + ENTER 輸入為陣列公式:
    =parseArrayData(RTD("ExcelRTD.RTDFunctions",,"AAA"))
  9. 在第一次的更新通知後六個的儲存格的每個包含唯一的數目。在第二個的更新通知之後的每個儲存格會包含唯一的字元。

?考

如需有關 RealTimeData 伺服器的資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件:
286259安全性設定和 Excel RealTimeData 伺服器
285888如何使用 Excel RTD 伺服器與 DCOM

屬性

文章編號: 286258 - 上次校閱: 2007年5月14日 - 版次: 3.2
這篇文章中的資訊適用於:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
關鍵字:?
kbmt kbinfo KB286258 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:286258
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com