我有一个数据表,因为我每周都会添加一列,并且我尝试编写宏来更改图表源。
Sub test()
Dim ges, koz, daz As Range
Dim Diaz As Integer
Sheets("Autopilot").Select
Diaz = Range("I2").Value (the value will change every week like I2 = I2 +1)
Set koz = Range("C3").Resize(, Diaz) ( this is the Header row)
Set daz = Range("C772").Resize(2, Diaz) (these are the 2 data rows for the chart)
Set ges = Union(koz, daz)
Sheets("Diagramm").Select
ActiveChart.ChartArea.Select
ActiveChart.SetSourceData Source:=Sheets("Daten").Range(ges)
End Sub最后一行不起作用。我试过了,最后没有Range (只有.ges)。
有谁知道这是怎么回事吗?
致以最美好的问候
发布于 2018-06-15 18:55:52
感谢大家的帮助,我找到了自己的解决方案:
带有工作表(“Daten”)的ActiveChart.SetSourceData Source:=ges结束于
致以最美好的问候
发布于 2018-06-15 15:49:18
VBA不需要创建动态图表范围。在范围名称中使用公式很容易做到这一点。看看Jon Peltier的网站,特别是如何绘制不断增长的数据集的最后x行的图表。
不需要运行代码,只需要运行公式。这还有一个额外的好处,那就是它可以在Excel online和手机上运行,而VBA不能。
发布于 2018-06-15 18:15:31
Teylyn的答案使用动态定义的名称将很适合您,或者如果您不想做公式,您可以将单元格范围转换为Excel表格(INSERT...TABLE或Crtl )。基于该表制作图表,您附加到该表底部的任何数据都将自动合并到该图表中。同样,不需要VBA。
https://stackoverflow.com/questions/50871128
复制相似问题