在VBA中,作为sub()的最后一步,我尝试编写一段代码来在子类结果的数据上创建饼图,但是我很难将数据源定义为数据的列位置,而且行数也不同。这是当前的代码。
'Create Pie chart
Charts.Add
ActiveChart.ChartType = xlPie
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range(Cells(2, X + 2), Cells(1 + Y, X + 2)), PlotBy:= _
xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Market Simulator"
ActiveChart.HasTitle = False在代码的前面填充了X和Y,X表示图表源数据被移到右边的列数,Y表示数据源有多少行长(不包括标头)。
当我尝试运行这个子程序时,我得到了一个“对象_global失败的方法单元格”错误,从在线搜索中可以看出这似乎是触发的,因为数据源位置不够具体,但是我不知道如何在定义工作表和单元格的情况下更加具体。我也尝试过添加工作簿,但没有帮助。
发布于 2017-11-08 11:43:32
可能常见的错误是,您没有使用工作表完全限定所有范围/单元格引用。当您添加图表表时,Sheet1不再是活动的,然后代码将尝试访问图表表上的单元格,这些单元格永远不会愉快地结束。注意下面两个单元格前面的点。
Charts.Add
ActiveChart.ChartType = xlPie
With Sheets("Sheet1")
ActiveChart.SetSourceData Source:=.Range(.Cells(2, x + 2), .Cells(1 + y, x + 2)), PlotBy:= _
xlColumns
End With
ActiveChart.Location Where:=xlLocationAsObject, Name:="Market Simulator"
ActiveChart.HasTitle = Falsehttps://stackoverflow.com/questions/47178193
复制相似问题