【问题标题】:Change Source data on an existing Chart (VBA)更改现有图表 (VBA) 上的源数据
【发布时间】:2018-10-11 19:48:29
【问题描述】:

我有一个名为 GRAFICO_PARETO 的现有图表。 此图表有一个源数据,例如从 A1 到 G20,我想将该范围更改为另一个范围,但不是来自 Excel 的前端,而是来自 vba。 我试过的代码是这样的:

Dim datosGrafico As Range
Set datosGrafico = Range(Range("Z2"), Range("Z2").End(xlToRight).End(xlDown))

 ActiveSheet.ChartObjects("GRAFICO_PARETO").Chart.SetSourceData Source:=datosGrafico

但有一点不对,因为我在最后一行代码的执行时间上收到“445”错误。

我正在使用西班牙语的 Microsoft Excel 2016 执行此操作。

感谢您的支持。

【问题讨论】:

  • 我在一些随机数据上尝试了您的代码,这两个命令似乎都有效。尝试做一个debug.print datosGrafico.address 并检查它是否包含所需的范围。
  • 它显示:"$Z$2:$AC$5" 这是正确的。你有哪个Office版本?因为我看到它在 2010 年有效,但在我的 2016 年无效......谢谢!我添加了一张快照以防万一!
  • 在您运行代码时,包含图表的工作表是否处于活动状态? dataosGrafico 将在代码运行时从激活的任何工作表中获取数据,并在同一工作表上查找图表。尝试完全限定所有内容都在哪张表上......ThisWorkbook.Worksheets("Sheet1").ChartObjects....
  • datosGrafico = Range(Range("Z2"), Range("Z2").End(xlToRight).End(xlDown)) 呢?放置数据的工作表是否处于活动状态?
  • 是的,当然,始终处于活动状态,我也尝试删除所有其他工作表...

标签: excel vba


【解决方案1】:

Excel 2016 上的新“Pareto”图表与此不兼容。所以我做了一个“自制”“帕累托”,合并了一个普通的柱形图和线性图表,以“允许”使用相同的代码......并且一如既往地工作。我认为帕累托是某种受保护的图表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多