2016-02-29 71 views
0

我想用VBA創建特定的細胞位置的排行榜位置。這裏是我的代碼如何將圖表添加到特定的細胞用VBA宏

Private Sub CommandButton1_Click() 
ActiveSheet.Shapes.AddChart.Select 
ActiveChart.SetSourceData Source:=Range("'Chart'!$A$1:$L$2") 
ActiveChart.ChartType = xlLineMarkers 
Dim cht As Chart 
Dim ser As Series 
Set cht = ActiveChart 
Set ser = cht.SeriesCollection(1) 
ser.Format.Line.Visible = msoFalse 
ser.Format.Line.Visible = msoTrue 
ser.Format.Line.ForeColor.RGB = RGB(26, 46, 74) 
ser.Format.Fill.ForeColor.RGB = RGB(26, 46, 74) 
With Worksheets("Chart").ChartObjects(1).Chart 
.HasTitle = True 
.ChartTitle.Text = Sheets("Chart").Range("B4") 
End With 
Dim Srs As Series 
Set Srs = ActiveChart.SeriesCollection(1) 
Srs.Name = "Desired Name" 
Dim ChartObj As Object 
For Each ChartObj In Sheets("Chart").ChartObjects 
ChartObj.Chart.Location xlLocationAsObject, "Factsheet" 
Next ChartObj 
End Sub 

ANy想法如何我可以解決這個請好嗎?

回答

0

如果使用ChartObjects.Add(Left, Top, Width, Height)方法。它允許你指定點的圖表位置。

例如:

Private Sub CommandButton1_Click() 
    Dim cht As ChartObject 
    Dim ser As Series 
    Set cht = ActiveSheet.ChartObjects.Add(20, 20, 400, 150) 
    With cht.Chart 
    .ChartType = xlLineMarkers 
    .HasTitle = True 
    .ChartTitle.Text = Worksheets("Chart").Range("B4") 
    .SetSourceData Source:=Worksheets("Chart").Range("$A$1:$L$2") 
    End With 
    Set ser = cht.Chart.SeriesCollection(1) 
    With ser.Format 
    .Line.Visible = msoTrue 
    .Line.ForeColor.RGB = RGB(26, 46, 74) 
    .Fill.ForeColor.RGB = RGB(26, 46, 74) 
    End With 
End Sub 

瞭解更多詳情,請參閱下文: https://msdn.microsoft.com/en-gb/library/office/ff197613.aspx

+0

是什麼20,20.150?我怎麼可以用我的代碼來實現這個? –

+0

我已經更新了我的工作的例子,清楚地表明瞭ChartObjects.Add(左,上,寬度,高度)方法的答案。 – danpeall