从用户表单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
这些Set
为Range
版本。 你也会做得更好,把系列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
和“ Add
到Range
的variablestypes。 这使得为图表创build开始/结束Range
变得更加容易。