在问我之前,我在网上进行了很多搜索,发现的答案并不能解决问题。 “数据”工作表与“报告”工作表位于同一工作簿中。
这是我的代码中与以下问题相关的部分:
Private Function CreateChart(ByVal DataRow As Integer, ByVal DataCol As Integer)
Dim ChartRowOffset As Integer
Charts.Add
ActiveChart.ChartType = xlPie
ActiveChart.SetSourceData Source:=Sheets("Data").Range(Cells(2, DataCol), Cells(DataRow - 1, DataCol + 1)), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Report"
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Select
ActiveChart.ChartTitle.Text = ThisWorkbook.Sheets("Data").Cells(1, DataCol).Value
If DataCol > 1 Then
ChartRowOffset = (DataCol - 1) * 2
Else
ChartRowOffset = 2
End If
With ActiveChart.Parent
.Top = ThisWorkbook.Sheets("Report").Cells(ChartRowOffset, 1).Top
.Left = ThisWorkbook.Sheets("Report").Cells(ChartRowOffset, 1).Left
End With
End Function
当我尝试从此行中的其他工作表中选择源时,出现错误代码1004“应用程序定义的错误或对象定义的错误”:
ActiveChart.SetSourceData Source:=Sheets("Data").Range(Cells(2, DataCol), Cells(DataRow - 1, DataCol + 1)), PlotBy:=xlColumns
如果我不使用Sheets(“ Data”)进行操作,则不会出错并创建图表,但是会从“ Reports”表中选择单元格,而不是我需要的工作表。 我尝试选择“数据”工作表,将其激活,到目前为止没有任何效果。
任何帮助将不胜感激。