2013-03-24 767 views
0

我對VB或VBA很新,但最近使用Excel的工作需要大量的重複。這就是爲什麼我現在正在考慮使用VBA宏觀方法來簡化流程。Excel宏已更改ActiveChart.SeriesCollection(1).XValues但文本保持不變

工作很簡單 - 用給定的數據生成圖表。但是有數百個圖表需要創建,所以我使用了複製和粘貼來保持樣式一致性,並在之後更改了值。

所有的數據都很好地處理,但對於軸標籤並不那麼流暢。我試圖使用ActiveChart.SeriesCollection(1).XValues = "=<sheet_name>!$<row_num>$<col_num>"來修改相應單元格中某些現有文本的值,但它並未在圖表上工作,即如果標籤爲「全部」,如在A6單元格中,則在原始單元格中我選擇粘貼的圖表並執行上面的命令後,新圖表中的標籤仍然會顯示「全部」,而不是B6單元中的內容,例如「中國」。但是,當我右鍵單擊圖表並進入「選擇數據」時,「水平(Catagory)軸標籤」確實變爲「= sheet1!$ B $ 6」,這讓我非常困惑。

任何人都知道這是怎麼發生的以及如何解決這個問題?是否有一個「更新」方法的圖表對象或任何我已經失蹤?

我目前使用Excel 2010.

+0

自動化Excel對象更改數據後,你需要調用(EXCEL)退出前應用程序的更新方法。我不確定它是否在其他方面做了些什麼,但它更新了底層數據的元文件表示。 – 2013-03-24 15:41:28

回答

1

歡迎來到Excel VBA的奇怪世界。

SeriesCollection().XValues要求無論是Range對象或點的數組,所以你必須改變你的字符串轉換成一個範圍:

ActiveChart.SeriesCollection(1).XValues = Sheets(<sheet_name>).Range("$<row_num>$<col_num>") 
+0

這似乎是有道理的。 :)(我沒有嘗試過,工作量很大,我不得不繼續做其他工作,之後我完全忘了回來檢查。對不起,<> – alxyzc 2013-04-08 08:35:33

+0

+1你知道爲什麼帶有字符串的版本在生成宏的計算機上工作嗎?我剛剛嘗試過C&P,並且遇到同樣的問題,直到我看到您的答案。 – 2013-08-08 14:36:45

相關問題