从用户表单input更改图表范围

我做了一个用户表单,这样一个人可以input一个开始date和一个结束date,这样一个折线图就会显示出所需要的信息。 目前我除了范围更新语法之外还有其他的工作。

我将开始date的数据的地址保存为广告,将结束date的地址保存为添加(都是string)。

然后我尝试使用这些设置范围,但我做错了什么。 这里是代码。

Dim CellX1 As Integer Dim CellY1 As Integer Dim CellX2 As Integer Dim CellY2 As Integer Dim Ad As String Dim Add As String Sheets("Data").Activate Cells(CellY1, CellX1).Activate Ad = ActiveCell.Address 'set start address Cells(CellY2, CellX2).Activate Add = ActiveCell.Address 'set end address Sheets("Graph").Activate ActiveSheet.ChartObjects("Chart 1").Activate ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).Name = "=""A3""" 

这是我无法工作的代码行:

 ActiveChart.SeriesCollection(1).Values = "=Data!$Ad:Add" ActiveChart.SeriesCollection(1).XValues = "=Time!$E:$F" 

应该能够Set这些SetRange版本。 你也会做得更好,把系列variables分配给实际的Ranges而不是地址作为string。 真的,你应该直接Set这是我下面的。

完整的代码应该是这样的:

 Dim CellX1 As Integer Dim CellY1 As Integer Dim CellX2 As Integer Dim CellY2 As Integer Dim Ad As Range Dim Add As Range Set Ad = Sheets("Data").Cells(CellY1, CellX1) 'set start address Set Add = Sheets("Data").Cells(CellY2, CellX2) 'set end address Sheets("Graph").Activate ActiveSheet.ChartObjects("Chart 1").Activate ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).Name = Range("A3") ActiveChart.SeriesCollection(1).Values = Range(Ad, Add) ActiveChart.SeriesCollection(1).XValues = Worksheets("Time").Range("$E:$F") 

请注意,我更改了“ Ad和“ AddRange的variablestypes。 这使得为​​图表创build开始/结束Range变得更加容易。