定位图表

时间:2019-06-20 10:15:02

标签: excel vba

我的代码从工作表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

1 个答案:

答案 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