2013-04-02 21 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

您需要設置XValuesValues獨立,將數據添加到圖表後。

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在功能區/菜單中的「插入圖表」時使用的默認假設。 –