2013-04-02 3 views
1

Используя следующий код, я получаю график, который я хочу, точно так же, как я хочу, за исключением того, что он очерчивает оси неправильным образом. Как мне заставить его изменить данные X на данные Y и наоборот?Перемещение таблиц осколков Диаграмма рассеяния в VBA

Sub AddChartObject() 


    Set cht = ActiveChart 
    Set rng = ActiveSheet.Range("AB30:AD40") 



    With ActiveSheet.ChartObjects.Add(Left:=rng.Left, Width:=rng.Width, Top:=rng.Top, Height:=rng.Height) 
    '(Left:=100, Width:=375, Top:=75, Height:=225) 
     .Chart.ChartType = xlXYScatterLines 

     .Chart.SetSourceData Source:=Range("O30:O40,N30:N40") 


    End With 


End Sub 

ответ

3

Вы должны установить XValues и Values независимо друг от друга, после добавления данных в таблице.

Dim srs as Series 

With ActiveSheet.ChartObjects.Add(Left:=rng.Left, Width:=rng.Width, Top:=rng.Top, Height:=rng.Height) 
'(Left:=100, Width:=375, Top:=75, Height:=225) 
    .Chart.ChartType = xlXYScatterLines 

    '.Chart.SetSourceData Source:=Range("O30:O40,N30:N40") 
    Set srs = .Chart.SeriesCollection.NewSeries 
    srs.Name = "The series name" '<-- edit as needed 
    srs.XValues = Range("O30:O40") 
    srs.Values = Range("N30:N40") 

End With 

Если это не сделать, то просто переверните значения/xValues ​​как:

srs.XValues = Range("N30:N40") 
    srs.Values = Range("O30:O40") 

Один из этих методов будет делать это для вас.

+0

Отлично! Работает точно по мере необходимости. Спасибо. – Mary

+0

Отлично. Да, это просто вопрос переопределения предположений по умолчанию, которые использует Excel, когда вы «Вставляете диаграмму» из ленты/меню. –

Смежные вопросы