dynamic更改图表系列VBA

我正试图实现dynamic图表时间序列

为此,我将date和利润从数据订单从原始数据复制到另一个工作表,我将使用它来dynamic创build图表。

但它给了我一个错误。 靠近我创造范围的线路,有没有更好的方法来做到这一点?

Sub ChartDataSeries() Dim ws As Worksheet Dim ws1 As Worksheet Dim rng As Range Set ws = Sheets("Data - Orders") Set ws1 = Sheets("Sheet10") ws.Range("C:C").Copy 'Source Copy Order Date ws1.Activate ws1.Range("B1").Select 'Paste Order Date ActiveSheet.Paste ws.Range("I:I").Copy 'Copy Profit Series ws1.Activate ws1.Range("C1").Select ActiveSheet.Paste ' Paste Profit Series ws1.Range("B1").Select Set rng = Range(Selection, Selection.End(xlToRight)).Select ' Error Ocurring here ActiveSheet.ChartObjects("Chart 7").Activate ActiveChart.SetSourceData Source: rng.Select 'ActiveChart.SeriesCollection(1).XValues = Range("Order Date") 'ActiveChart.SeriesCollection(1).Values = Range("Profit") End Sub 

最好是远离所有这些ActivateSelectSelectionActiveChart等。

replace以下4行:

 ws1.Range("B1").Select Set rng = Range(Selection, Selection.End(xlToRight)).Select ' Error Ocurring here ActiveSheet.ChartObjects("Chart 7").Activate ActiveChart.SetSourceData Source: rng.Select 

有了这2:

 Set Rng = ws1.Range(ws1.Range("B1"), ws1.Range("B1").End(xlToRight)) ActiveSheet.ChartObjects("Chart 7").Chart.SetSourceData Source:=Rng