2012-12-10 16 views
6

szukam utworzyć wykres punktowy, że po naciśnięciu przycisku, tworzy wykres punktowy w Sheet 1 i używa A2:A11 jako wartości x i B2:B11 jako wartości y. Excel VBA: Dodawanie wykresu punktowego do arkusza roboczego jako przedmiot

Użycie kodu u dołu pozwala mi utworzyć wykres punktowy oparty na wartościach z A1:B3 (otrzymałem to od here). Jest blisko, ale nie dokładnie tego, czego szukam. Jak mogę poprawić to, aby dopasować się do moich potrzeb?

Mam go teraz skonfigurowany, aby wykres został wykonany, w oparciu o wartości, które chcę, ale nie mogę uzyskać, aby pojawił się jako obiekt w Sheet 1. Jak mam to zrobic? .Location xlLocationAsObject wydaje się nie działać.

Private Sub chartButton_Click() 
    ActiveWorkbook.Charts.Add 
    With ActiveWorkbook.ActiveChart 
     'Data? 
     .ChartType = xlXYScatter 
     .SeriesCollection.NewSeries 
     .SeriesCollection(1).Name = "=""Scatter Chart""" 
     .SeriesCollection(1).XValues = "=Sheet1!$A$2:$A$11" 
     .SeriesCollection(1).Values = "=Sheet1!$B$2:$B$11" 

     'Location 
     'DON'T KNOW WHAT TO PUT HERE 
     '.location xlLocationAsObject doesn't work! 

     'Titles 
     .HasTitle = True 
     .ChartTitle.Characters.Text = "Scatter Chart" 
     .Axes(xlCategory, xlPrimary).HasTitle = True 
     .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "X values" 
     .Axes(xlValue, xlPrimary).HasTitle = True 
     .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Y values" 
     .Axes(xlCategory).HasMajorGridlines = True 

     'Formatting 
     .Axes(xlCategory).HasMinorGridlines = False 
     .Axes(xlValue).HasMajorGridlines = True 
     .Axes(xlValue).HasMinorGridlines = False 
     .HasLegend = False 

    End With 
End Sub 

Odpowiedz

8

Kod jak napisane dodaje wykres jako Chart Sheet, nie jako wykres na Worksheet

Spróbuj tego:

Wymień

ActiveWorkbook.Charts.Add 
With ActiveWorkbook.ActiveChart 

z

Dim sh As Worksheet 
Dim chrt As Chart 

Set sh = ActiveWorkbook.Worksheets("Sheet1") 
Set chrt = sh.Shapes.AddChart.Chart 
With chrt 

Następnie można kontrolować jego położenie i rozmiar z

.ChartArea.Left 
    .ChartArea.Top 
    .ChartArea.Height 
    .ChartArea.Width 
0

Podczas korzystania Chart.Location, trzeba określić lokalizację:

.Location Where:=xlLocationAsObject, Name:="Sheet1" 
Powiązane problemy