2016-02-29 7 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 

Все идеи, как я мог решить это, пожалуйста?

ответ

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 (Left, Top, Width, Height). – danpeall