excel vba图表使用该工作表的数据在不同的工作表上
我有一个程序可以创建一个新工作表,将数据添加到该工作表,最后一部分应该是输出图表。当我尝试下面的代码,我得到“对象或变量或块变量未设置”excel vba图表使用该工作表的数据在不同的工作表上
请让我知道我要去哪里错了。谢谢。
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("J2", Sheets(ws.Name).Range("L2").End(xlDown).Address)
ActiveChart.ChartType = xlLine
With ActiveChart.Parent
.Height = 400
.Width = 800
End With
Next
您正在使用逗号来创建带有字符串的范围。这只适用于范围对象。尝试: ActiveChart.SetSourceData Source:=ws.Range("J2:" & ws.Range("L2").End((xlDown).Address)
谢谢,有人在之前建议过,但是它不起作用。此声明适用于活动表格,但不适用于其他表格 – user1681664 2014-10-20 14:39:14
With ws.ChartObjects.Add(Left:=100, Width:=375, Top:=75, Height:=225)
.Chart.SetSourceData Source:=ws.Range("J2", Sheets(ws.Name).Range("L2").End(xlDown).Address)
.Chart.ChartType = xlLine
End With
考虑添加一些解释,为什么未设置“ActiveChart”变量。只有代码的答案通常是不鼓励的。 – 2014-10-20 16:09:39
在VBA回报变种很多对象存取的。 如果你有这个问题,例如chart.parent //返回变量btw 首先要尝试的是将它分配给一个类型变量 在运行时,如果变体被处理,就好像它是一个不同的类型,肯定会遇到运行时错误。
dim ws As Worksheet
set ws = ActiveChart.Parent
With ws
'ws operations here
.Name = "My worksheet!"
.Cells(1,1).Value = "cell A1"
End With
也是它值得一提的是,Workbook.Worksheets收藏还包含图表对象http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.worksheets.aspx
所以当您添加图表工作表你基本上是增加你遍历该集合,不建议。
更改为这样:
ActiveChart.SetSourceData来源:=范围(表(ws.Name).Range( “J2”),表格(ws.Name).Range( “L2”)结束( xlDown))
在哪一行? – 2014-10-20 14:14:09
你可以发布你设置ws的代码吗? – 2014-10-20 14:14:55
@ vvba4all在这一行。 。 .ActiveChart.SetSourceData源:=范围(“J2”,表(ws.Name).Range(“L2”)。结束(xlDown)。地址) – user1681664 2014-10-20 14:20:27