【发布时间】: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))呢?放置数据的工作表是否处于活动状态? -
是的,当然,始终处于活动状态,我也尝试删除所有其他工作表...