我创建了一个用户窗体,因此一个人可以输入开始日期和结束日期,以便线图显示所需的信息。目前除了范围更新语法之外我还能正常工作。
我将开始日期数据的地址保存为Ad,结束日期地址的地址保存为Add(两者都是字符串)。
然后我尝试使用这些设置范围,但我做错了。这是代码。
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"
答案 0 :(得分:0)
应该{{1}}那些Set
版本。您还可以将系列变量分配给实际的Range
而不是地址作为字符串。真的,你应该直接Ranges
,这就是我在下面的内容。
完整代码应该是这样的:
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
。