【问题标题】:Excel 2007 Create a number of charts with VBAExcel 2007 使用 VBA 创建多个图表
【发布时间】:2016-05-18 10:54:44
【问题描述】:

我一直在尝试使用 VBA 创建许多图表。我使用宏记录功能上手,但进展不大。

我有一个可变数据集,我需要为每一行绘制图表。一个单元格是系列名称,数据是同一行上的(固定)单元格范围,并针对一系列日期(顶行)绘制。

所以我拥有的是这个(对于单个图表)

Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Data").Range("A3")
ActiveChart.SeriesCollection(1).Name = "='Data'!$A$3"
ActiveChart.SeriesCollection(1).Values = "='Data'!$MO$3:$RY$3"
ActiveChart.SeriesCollection(1).XValues = "='Data'!$MO$1:$RY$1"
ActiveChart.Name = Sheets("Data").Range("A3")

如果A3 是第一个包含名称数据的单元格,我想循环每一行,为每个系列生成一个新图表。

我已经设法从输入框中输入起点,但这并不是必需的。是给我用的,不是给别人用的。如果它从一个固定点开始并循环直到它到达一个空白单元格,我会很高兴。

我不能做的就是弄清楚如何为每次迭代生成单元格范围。

数据截图

示例图表的屏幕截图

【问题讨论】:

  • 嗨,布赖恩,目前还不是很清楚你在尝试什么。你能发布一张你的数据是什么样子的图片吗?

标签: excel vba charts


【解决方案1】:

在引用范围的地方,您可以使用变量在每次迭代中“移动”引用。 例如,您想在 A 列的前 10 行中插入一些文本,您可以这样写:

Range("A1").Value = "Hello"
Range("A2").Value = "Hello"
Range("A3").Value = "Hello"
Range("A4").Value = "Hello"
etc...

相反,您可以使用循环,通过使用循环变量i,在每次迭代中将Range 引用向下“移动”一行:

For i = 1 to 10
    Range("A" & i).Value = "Hello"
Next i

如果需要,您还可以在行中调整引用以获得所需的结果,例如Range("A" & i * 2).Value = "Hello" 将通过将i 的值乘以 2 将文本添加到偶数行 2-20。

如果您想为数据中的每一行重复循环,您可以使用 Range("").End(xlDown).Row 找到底部行的行号,同时将顶部单元格引用放在 "" 标记中,在您的情况下“ A3"

将所有这些放在一起,您正在寻找以下内容:

for i = 3 to Range("A3").End(xlDown).Row   'Loop for each row from 3 to the bottom
    Charts.Add
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=Sheets("Data").Range("A" & i)
    ActiveChart.SeriesCollection(1).Name = "='Data'!$A" & i
    ActiveChart.SeriesCollection(1).Values = "='Data'!$MO" & i & ":$RY" & i
    ActiveChart.SeriesCollection(1).XValues = "='Data'!$MO$1:$RY$1"
    ActiveChart.Name = Sheets("Data").Range("A" & i)
next i

如果它不能完全按照您的预期工作,您可能需要调整以上内容,但我希望这可以帮助您弄清楚。

【讨论】:

  • 啊,太好了。是的,这就是我想要做的。现在我需要对现有工作表进行一些错误检查,而不是每次迭代都添加一个新工作表,但非常感谢。
猜你喜欢
  • 1970-01-01
  • 2014-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-13
  • 1970-01-01
  • 1970-01-01
  • 2021-05-24
相关资源
最近更新 更多