【问题标题】:Series formula too long error in VBA chartsVBA图表中的系列公式太长错误
【发布时间】: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

我也有posted my question on the following links.

【问题讨论】:

  • 那么你为什么不在另一个地方做你的整个聚合和联合,然后简单地将那个目的地引用到系列范围中呢?
  • 您好,感谢您的回复。另一个地方是什么意思?我是 vba 新手;如果你能帮我写代码,那就太好了。

标签: vba excel charts error-handling


【解决方案1】:

图表系列公式(选择图表并查看公式栏)如下所示:

=SERIES(,Sheet1!$B$5:$F$5,Sheet1!$G$5:$K$5,1)

意思是

=SERIES({series name, optional},{x values},{y values},{plot order})

当您将不连续的范围组合成 X 和 Y 值时,系列公式会变大:

=SERIES(,(Sheet1!$B$2,Sheet1!$D$2,Sheet1!$F$2,Sheet1!$H$2,Sheet1!$J$2),(Sheet1!$C$2,Sheet1!$E$2,Sheet1!$G$2,Sheet1!$I$2,Sheet1!$K$2),1)

系列公式的每个部分都有严格的字符限制,小于 256 个字符,此时它将失败,并显示您看到的错误消息。

@bonCodigo 建议将您的数据从不连续排列(如屏幕截图中的第一个彩色行;紫色 = X 值,蓝色 = Y 值)移动到连续排列(如第二个)。图表看起来一样,但第二个中的公式要简单得多,并且不会给您错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多