我的代码从工作表1中的数据绘制图表并将其放置在工作表2的指定位置时,在定位命令中被中断:
.Left = Range("B2").Left
.Top = Range("B2").Top
出现编译错误:
编译错误:找不到方法或数据成员
有人可以帮助我找到原因吗?
Sub addchrt()
Dim ws As Worksheet
Dim rng As Range
Dim objChrt As ChartObject
Dim chrt As Chart
Set rng = Sheets("Sheet1").Range("A2:A20,C2:C20")
Set ws = Sheets("Sheet2")
With ws
.Shapes.AddChart
Set objChrt = .ChartObjects(.ChartObjects.Count)
Set chrt = objChrt.Chart
With chrt
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=rng
.HasTitle = True
.ChartTitle.Text = "Test"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "xxx"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "yyyy"
.HasLegend = False
.Left = Range("B2").Left
.Top = Range("B2").Top
End With
End With
End Sub
答案 0 :(得分:0)
在您未编辑的代码中。还有一个额外的End With
引起了问题
您尝试访问Chart对象的.Left
和.Top
属性。哪个不存在。
但是,您拥有的ChartObject对象具有.Left
和.Top
属性。所以这些应该像这样使用
objChrt.Left = Range("B2").Left
objChrt.Top = Range("B2").Top
您也可以在制作图表时设置其位置,就像罗里在评论中提到的那样
关于{p> 3的文档可以在here中看到。 (请注意,我找不到适用于excel的确切方法,其中列出了类似的here)