【发布时间】:2015-07-03 07:58:34
【问题描述】:
我有 23 个部门的以下数据。 合并第一行部门单元格。
我的数据与图片in this link. 中的数据相似,我只有 [23 个“pcts”和“acts”。
- 我正在尝试使用 VBA 制作两个图表;一个代表实际,一个代表总数的百分比,由以下代码表示。
- 我得到两张图,直到在 i 列的 For 循环中,值分别不超过 35 和 36,而不是分别代替 29 和 30。
- 当我分别超过 35 和 36 的值时,它会显示“系列公式太长”错误并且未绘制图表。
为什么会这样?
Sub TwoCharts11()
Dim rChart1 As Range
Dim rChart2 As Range
Dim iColumn As Long
Dim cht1 As Chart
Dim cht2 As Chart
Const StrtRow As Long = 2
Const EndRow As Long = 6
With ActiveSheet
Set rChart1 = .Range(.Cells(StrtRow, "B"), .Cells(EndRow, "B"))
Set rChart2 = .Range(.Cells(StrtRow, "B"), .Cells(EndRow, "B"))
For iColumn = 3 To 29 Step 2
Set rChart1 = Union(rChart1, .Range(.Cells(StrtRow, iColumn), .Cells(EndRow, iColumn)))
Next
For iColumn = 4 To 30 Step 2
Set rChart2 = Union(rChart2, .Range(.Cells(StrtRow, iColumn), .Cells(EndRow, iColumn)))
Next
Set cht1 = .Shapes.AddChart.Chart
Set cht2 = .Shapes.AddChart.Chart
With cht1
.Parent.Left = .Parent.Left - .Parent.Width / 2
.ChartType = xlColumnClustered
.SetSourceData rChart1
End With
With cht2
.Parent.Left = .Parent.Left + .Parent.Width / 2
.ChartType = xlColumnClustered
.SetSourceData rChart2
End With
End With
End Sub
【问题讨论】:
-
那么你为什么不在另一个地方做你的整个聚合和联合,然后简单地将那个目的地引用到系列范围中呢?
-
您好,感谢您的回复。另一个地方是什么意思?我是 vba 新手;如果你能帮我写代码,那就太好了。
标签: vba excel charts error-handling