2016-03-21 59 views
0

我正在用C#重新創建VBA程序,並在更新系列圖表時遇到問題。我花了大量的時間在谷歌和論壇上尋找自己的問題的答案,但似乎無法弄清楚。在C中更新Excel系列圖表#

我正在做的是更新系列圖表,以查看不在圖表所在位置的工作表中的數據,並更新範圍。

我的問題來了,當更新系列圖時,C#將只接受一個範圍。但是,系列圖表所需的範圍包含工作表名稱,並且範圍不能包含文本(所以我被引導相信)。 我需要重新創建的範圍的示例如下;

=ANZ!$J$313:$J$737,ANZ!$M$313:$O$737 

我目前擁有的代碼是:

CloudAllTrialsDataPage = UpdateBook.Worksheets[CloudAllTrialsChartDataPage1]; 
LastRow = CloudAllTrialsDataPage.Range["J:J"].Find(StartDate, Type.Missing, XlFindLookIn.xlValues, XlLookAt.xlWhole, XlSearchOrder.xlByRows, XlSearchDirection.xlNext, Type.Missing, Type.Missing, Type.Missing).Row; 
FoundCell = CloudAllTrialsDataPage.Range["J:J"].Find(strDateLM, Type.Missing, XlFindLookIn.xlValues, XlLookAt.xlWhole, XlSearchOrder.xlByRows, XlSearchDirection.xlNext, Type.Missing, Type.Missing, Type.Missing).Row; 
Excel.Range Range1 = CloudAllTrialsDataPage.Range["J" + FoundCell + ":J" + LastRow]; 
Excel.Range Range2 = CloudAllTrialsDataPage.Range["M" + FoundCell + ":O" + LastRow]; 
Range DataRange = CloudAllTrialsDataPage.Range[Range1].Address + CloudAllTrialsDataPage.Range[Range2].Address; 
chartObject2 = CloudAllTrialsChartPage.ChartObjects(Type.Missing); 
myChart = (Excel.ChartObject)chartObject2.Item("Monthly2"); 
myChart.Chart.SetSourceData(DataRange); 

所有代碼的正確和拉直到工作到插入範圍到圖表的點。我嘗試了各種不同的解決方法,但總是遇到試圖將表名添加到範圍的問題。

任何援助或指針將非常感激。

謝謝。

聲明:如果我的任何術語是「不正確的」,我是外行,所以請原諒。

+0

語法上的幫助並不完全是我在找的東西,而是「他們說的每一天都是上學的日子」。 – DDuffy

回答

0

好的。所以我想通了這兩個問題。

1)如果您引用正確的圖表,它通常會有所幫助。

2)要將兩個單獨的範圍組合到系列圖表範圍中,請使用get_Range。如果將變量設置爲

Excel.Range ChartRange = datapage.get_Range("A1:A6","C1:C6"); 

這會創建一個包含兩個範圍的範圍。由於聲明的範圍與圖表不在同一張紙上,因此紙張名稱會自動填充。

我最終解決的代碼是;

Excel.Range chartRange; 
Excel.ChartObjects xlCharts = (Excel.ChartObjects)CloudAllTrialsChartPage.ChartObjects(Type.Missing); 
Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Item("DailyView"); 
Excel.Chart chartPage = myChart.Chart; 
chartRange = CloudAllTrialsDataPage.get_Range("J" + FoundCell + ":J" + LastRow + ",M" + FoundCell + ":O" + LastRow); 
chartPage.SetSourceData(chartRange, Missing.Value); 

只要在這裏留下,以防其他人需要它。在更新可用的系列圖表方面,令人驚訝的是建議不多。 (我能找到。)