【发布时间】:2021-06-21 09:32:00
【问题描述】:
我想创建 6 个图表并将它们放入 6 个不同的单元格区域。我定义了一个包含单元格范围的数组。有人可以解释一下为什么这段代码不起作用。 ps:如果我让代码更改高度、宽度、顶部、左侧,它工作得非常好。我 90% 确定它与数组有关。
Dim i As Integer
Dim varData(5) As range
Set varData(0) = range("A2:H14")
Set varData(1) = range("I2:P14")
Set varData(2) = range("Q2:X14")
Set varData(3) = range("A16:H28")
Set varData(4) = range("I16:P28")
Set varData(5) = range("Q16:X28")
For i = 1 To 6
totalString = ""
totalStringTwo = ""
ValueAxis = i
ValueAxisTwo = i
totalString = textBefore + ValueAxis + textVafter
totalStringTwo = textBeforeTwo + ValueAxisTwo + textVafterTwo
'chart axis 1'
ActiveSheet.Shapes.AddChart2(227, xlColumnClustered).Select 'xlLine - lijngrafiek'
Set RngToCover = varData(i - 1)
ChtOb.Height = RngToCover.Height ' resize
ChtOb.Width = RngToCover.Width ' resize
ChtOb.Top = RngToCover.Top ' reposition
ChtOb.Left = RngToCover.Left ' reposition
ActiveChart.SetSourceData Source:=Sheets(StrDataPtp).range(totalString)
ActiveChart.Axes(xlValue).MajorGridlines.Select
ActiveChart.FullSeriesCollection(1).Delete
ActiveChart.FullSeriesCollection(1).XValues = totalStringTwo
With ActiveChart
'X axis name
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "degrees (°)"
'y-axis name
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "time (s)"
'chartname'
.ChartTitle.Text = "axis 1 RCS cycle time"
End With
Next i
【问题讨论】:
-
缺少一堆
Sets:Set varData(0) = ...,Set varData(1) = ... -
感谢您的回复!我在代码中更改了它,但现在代码运行一次而不是六次,所以还有其他问题
-
图表创建和应用存在几个问题。参考This