2015-12-08 198 views
1

我正在使用以下代码尝试进行收费并引发com异常。我正在试图制作一张图表。有没有什么明显的我的代码做错了?错误发生在get_range行。正确使用get_range制作图表

 static void makechart(int counter, int startcount, Worksheet sourcesheet) 
    { 
     Range chartrange; 
     string rangestr = "G" + startcount.ToString() + ":G" + counter.ToString() + ",I" + startcount.ToString() + ":I" + counter.ToString(); 
     ChartObjects xlcharts =  (ChartObjects)sourcesheet.ChartObjects(Type.Missing); 
     ChartObject myChart = (ChartObject)xlcharts.Add(10, 80, 300, 250); 
     Chart chartPage = myChart.Chart; 
     chartrange = objsheet.get_Range(rangestr,Type.Missing); 
     //chartrange = sourcesheet.get_Range("G1", "B" + counter + 1); 

     chartPage.SetSourceData(chartrange, Type.Missing); 
     chartPage.ChartType = XlChartType.xlBarClustered; 


    } 
+0

objsheet ??定义在哪里?你的意思是源代码? – amuz

+0

扔什么异常? – MatthewD

回答

0

这应该工作:

替换:

string rangestr = "G" + startcount.ToString() + ":G" + counter.ToString() + ",I" + startcount.ToString() + ":I" + counter.ToString(); 

有:

string range1 = "G" + startcount.ToString() + ":G" + counter.ToString(); 
string range2 = "I" + startcount.ToString() + ":I" + counter.ToString(); 

chartrange = objsheet.get_Range(rangestr,Type.Missing); 

附:

chartrange = objsheet.get_Range(range1,range2); 
+0

错误仍然存​​在,我想知道如果我错过了什么? –