[英]Excel VBA variable Chart Range
我有一个数据表,我每周添加一列,并尝试编写宏来更改图表源。
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
最后一行不起作用。 我尝试了没有结尾的范围(仅.ges)。
任何人都知道这将如何工作?
最好的祝福
VBA无需创建动态图表范围。 使用范围名称中的公式可以轻松完成此操作。 看看Jon Peltier的网站,尤其是如何绘制一直在增长的数据集的最后x行。
无需运行代码,只需运行公式即可。 这样做还有一个好处,那就是它可以在Excel在线和电话中使用,而VBA则不能。
Teylyn使用动态定义的名称的答案将很适合您,或者,如果您不想执行公式,则可以将单元格范围转换为Excel表(INSERT ... TABLE或Crtl T)。 根据该表格制作图表,您添加到表格底部的所有数据都会自动合并到图表中。 再次不需要VBA。
这不起作用: ActiveChart.SetSourceData Source:=Sheets("Daten").Range(ges)
因为ges
具有Sheets("Autopilot")
作为父级工作表。 因此,请尝试:
ActiveChart.SetSourceData Source:=Sheets("Autopilot").Range(ges)
要么
ActiveChart.SetSourceData Source:=Sheets("Daten").Range(ges.Address)
根据您的需要。
谢谢大家的帮助,我找到了自己的解决方案:
With Sheets(“ Daten”)ActiveChart.SetSourceData源:= ges结尾为
最好的祝福
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.