Excel 2010中的VBA位置图

时间:2014-07-16 13:41:39

标签: vba charts

我正在尝试将图表添加到工作表中,然后根据特定范围的单元格定位它。我正在使用.top,.left等函数,它一直给我一个错误,我的对象不支持使用的方法。我究竟做错了什么?!这是我的代码:

Sub AddCharts()

Range("O1").Select

Dim sh As Worksheet
Dim chrt As Chart
Dim lastrow As Long

lastrows = Range("A2").End(xlDown).Row

Set sh = ActiveWorkbook.Worksheets("TraceTable")
Set chrteit = sh.Shapes.AddChart.Chart

With chrteit
.ChartType = xlXYScatter
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = sh.Range(Cells(2, 6), Cells(lastrows, 6))
.SeriesCollection(1).Values = sh.Range(Cells(2, 7), Cells(lastrows, 7))

    .HasTitle = True
    .ChartTitle.Text = "EIT"
    .Height = Range("N2:N14").Height
    .Width = Range("N2:T2").Width
    .Top = Range("N2").Top
    .Left = Range("N2").Left
End With

End Sub

2 个答案:

答案 0 :(得分:5)

要继续查看原始帖子下面的评论,请尝试替换:

.Height = Range("N2:N14").Height
.Width = Range("N2:T2").Width
.Top = Range("N2").Top
.Left = Range("N2").Left

使用:

.Parent.Height = Range("N2:N14").Height
.Parent.Width = Range("N2:T2").Width
.Parent.Top = Range("N2").Top
.Parent.Left = Range("N2").Left

答案 1 :(得分:2)

Chart没有.Top.Left等属性,但是它的父容器,ChartObject确实有那些属性。

而不是.Height =.Parent.Height =等等。

.Parent.Height = Range("N2:N14").Height
.Parent.Width = Range("N2:T2").Width
.Parent.Top = Range("N2").Top
.Parent.Left = Range("N2").Left