Excel 在图表中创建数据位于另一工作表中的新系列

Excel 在图表中创建数据位于另一工作表中的新系列,excel,vba,Excel,Vba,我正在制作一张图表,其中系列的数量在变化,所有系列都是从不同的工作表中绘制数据,而这些工作表不是活动工作表。图形是在名为“GraphName”的主工作表上创建的,每个系列的数据位于不同的工作表上,该工作表由较大的子工作表重命名为“targetSheetName” 现在,我有以下几点: Public Sub GraphingTemperature(ByVal targetSheetName As String, ByVal graphsName As String) Sheets(graphsN

我正在制作一张图表,其中系列的数量在变化,所有系列都是从不同的工作表中绘制数据,而这些工作表不是活动工作表。图形是在名为“GraphName”的主工作表上创建的,每个系列的数据位于不同的工作表上,该工作表由较大的子工作表重命名为“targetSheetName”

现在,我有以下几点:

Public Sub GraphingTemperature(ByVal targetSheetName As String, ByVal graphsName As String)

Sheets(graphsName).Select
Application.Run "getUnits"
ActiveSheet.ChartObjects("Chart 1").Activate
With ActiveChart.SeriesCollection.NewSeries
     .Name = Sheets(targetSheetName).Range("C1")
    .Values = Sheets(targetSheetName).Range(Range("C5"), Range("C5").End(xlDown))
    .XValues = Sheets(targetSheetName).Range(Range("D5"), Range("D5").End(xlDown))
End With



End Sub
此函数由制作图表的较长子函数调用,然后将保存该特定系列数据的工作表名称提供给此函数

我不想用这个

ActiveChart.SeriesCollection.NewSeries
    ActiveChart.FullSeriesCollection(1).Name
因为系列的数量是不断变化的


当我试图将其指向序列的值和xvalues时,似乎出现了问题。我希望图表系列从列的第5行开始,继续到最后一个条目。当我想从另一个工作表中获取一系列数据并将工作表的名称传递给子工作表时,有人知道正确的语法吗?

第一步。不要传递工作表名称,传递工作表变量。问题是
Range(“C5”)、Range(“C5”).End(xlDown)
Range(“D5”)、Range(“D5”).End(xlDown)
-您需要限定工作表上的这些范围。我想我要限定工作表上的范围,在该范围之前是“Sheets(targetSheetName)”?当我运行宏时,可以使用targetSheetName工作表中c1中的正确名称创建图表,因此我认为它得到了正确的工作表。当我尝试获取x和y值时,问题就出现了。括号内的
范围
调用隐含地引用了
ActiveSheet
。好的,我将其更改为
。值=工作表(targetSheetName)。范围(工作表(targetSheetName)。范围(“C5”)、工作表(targetSheetName)。范围(“C5”)。结束(xlDown))。XValues=工作表(targetSheetName).Range(Sheets(targetSheetName).Range(“D5”)、Sheets(targetSheetName”).Range(“D5”).End(xlDown))
现在可以使用了,谢谢!