在excel中插入图表,如果使用:
ActiveChart.SetSourceData Source:=Sheets("gradingResult").Range("B19:B20"), _
        PlotBy:=xlColumns
没有任何问题。但是如果用:
ActiveChart.SetSourceData Source:=Sheets("gradingResult").Range(Cells(19, 2), Cells(20, 2)), _
        PlotBy:=xlColumns
则会出错:Run-time error 1004: Method 'Cells' of Object '_Global' failed.  而事实上,两者所指的范围完全一样。请高人指点。

解决方案 »

  1.   

    Worksheet.Range 属性
    获取一个 Microsoft.Office.Interop.Excel.Range 对象,该对象表示单元格或单元格范围。Range 属性适合与下面的参数一起使用。参数
    说明
     
    Cell1 
    采用应用程序语言的以 A1 样式表示法表示的范围名称。范围名称可以包括范围运算符(冒号)、交集运算符(空格)或并集运算符(逗号)。范围名称还可以包括货币符号,但是这些符号被忽略。可以在范围的任何部分中使用本地定义的名称。如果使用一个名称,则假定该名称使用的是应用程序的语言。此参数是必需的。
     
    Cell2 
    范围右下角的单元格。可以是一个包含单个单元格、整列、整行的 Microsoft.Office.Interop.Excel.Range,或者可以是一个以应用程序的语言命名单个单元格的字符串。此参数在 Visual Basic 中是可选的。

     
      

  2.   

    Range(Cells(19, 2), Cells(20, 2)) 修改为
    Range(Sheets("gradingResult").Cells(19, 2), Sheets("gradingResult").Cells(20, 2))