從 Excel 的圖表中使用巨集來抽選資料

文章翻譯 文章翻譯
文章編號: 300643 - 檢視此文章適用的產品。
如需本文的 Microsoft Excel 2000 版本,請參閱 213814
如需本文的 Microsoft Excel 98 及更早版本,請參閱 137016
全部展開 | 全部摺疊

在此頁中

結論

在 Microsoft Excel 中,即使資料位於外部工作表或活頁簿,您仍可從圖表中擷取資料。當圖表是根據另一個檔案建立的,或連結至另一個檔案,且該檔案已不存在或損毀的情況下,即可派上用場。當圖表的來源資料遺失,仍然可以使用 Microsoft Visual Basic for Applications 巨集,從圖表本身擷取資料。

其他相關資訊

Microsoft 僅提供示範性的程式設計範例,不做任何明示或默示的保證。其中包括 (但不限於) 其適售性與適合某特定用途之默示擔保。本文將假設您已相當熟悉示範所使用的程式設計語言,以及用於建立和偵錯程序的工具。Microsoft 技術支援工程師可以協助說明特定程序的功能,但不會修改這些範例以提供附加功能或建構程序來滿足您的特定需求。

下列範例巨集會將圖表的來源資料置於使用中活頁簿裡稱為 "ChartData" 的工作表中,從第一欄及第一列開始。
  1. 在模組表中輸入下列巨集程式碼:
    Sub GetChartValues()
       Dim NumberOfRows As Integer
       Dim X As Object
       Counter = 2
    
       ' Calculate the number of rows of data.
       NumberOfRows = UBound(ActiveChart.SeriesCollection(1).Values)
    
       Worksheets("ChartData").Cells(1, 1) = "X Values"
    
       ' Write x-axis values to worksheet.
       With Worksheets("ChartData")
          .Range(.Cells(2, 1), _
          .Cells(NumberOfRows + 1, 1)) = _
          Application.Transpose(ActiveChart.SeriesCollection(1).XValues)
       End With
    
       ' Loop through all series in the chart and write their values to
       ' the worksheet.
       For Each X In ActiveChart.SeriesCollection
          Worksheets("ChartData").Cells(1, Counter) = X.Name
    
          With Worksheets("ChartData")
             .Range(.Cells(2, Counter), _
             .Cells(NumberOfRows + 1, Counter)) = _
             Application.Transpose(X.Values)
          End With
    
          Counter = Counter + 1
       Next
    
    End Sub
    					
  2. 在活頁簿中插入新工作表,並重新命名為 "ChartData" (不含引號)。
  3. 選取您要抽取基礎資料值的圖表。

    請注意:圖表可以內嵌於工作表上,亦可位於分開的圖表工作表上。
  4. 執行 GetChartValues 巨集。

    圖表的資料會置於 "ChartData" 工作表中。

將圖表連結至復原資料的步驟

若要使圖表與復原資料產生互動,您必須將圖表連結至新的資料工作表,而非維持原有遺失或損毀活頁簿的連結。
  1. 選取圖表,然後按一下某數列以找出圖表連結到損毀或遺失活頁簿的工作表名稱。該工作表名稱會顯示於資料編輯列的數列公式中。

    請注意:工作表名稱可能跟隨著活頁簿名稱,並以方括弧括住 (例如 [Book1]),而且後面跟著驚嘆號 "!"(或是單引號加上驚嘆號 "'!") 以表示儲存格參照的開始。工作表名稱僅包括右方括號 "]" 和驚嘆號 (或是單引號加上驚嘆號) 之間的字元。如果單引號緊接在驚嘆號之前,請直接略過,因為單引號不可做為工作表名稱的最後一個字元。
  2. 按兩下新工作表 (稱為 ChartData) 的索引標籤。
  3. 在步驟 1 反白的 "ChartData" 上輸入原始工作表名稱,然後按 ENTER。此名稱必須和損毀或遺失活頁簿的工作表名稱相同。
  4. 如果您尚未儲存這個包含圖表與資料工作表的檔案,請先儲存檔案。
  5. 在 Excel 2003 或 Excel 2002 中,按一下 [編輯] 功能表上的 [連結],然後按一下 [變更來源]

    在 Excel 2007 中,按一下 [資料] 索引標籤,再按一下 [連線] 群組中的 [編輯連結],然後按一下 [變更來源]
  6. [來源檔案] 方塊中,選取要變更的連結,然後按一下 [變更來源]
  7. [變更連結] 對話方塊中,選取包含復原資料和圖表的新檔案,然後按一下 [確定]
  8. 如果您收到下列錯誤訊息
    Your formula contains an invalid external reference to a worksheet. (您的公式中包含無效的外部工作表參照。)
    很有可能是因為您在步驟 3 輸入的工作表名稱,與原始的名稱不相同。回到步驟 1。
  9. 現在 [來源檔案] 方塊中可能是空白的。這表示所有連結都指向使用中檔案,而非遺失或損毀的檔案。按一下 [關閉]
圖表現在可以參照到使用中活頁簿之重新命名工作表上的復原資料,並且開始互動。

屬性

文章編號: 300643 - 上次校閱: 2007年4月6日 - 版次: 4.1
這篇文章中的資訊適用於:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
關鍵字:?
kbdtacode kbhowto kbprogramming KB300643
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