2015-03-13 6 views
1

Я пытаюсь рисовать линейные графики в Excel.Переменный диапазон в Excel VBA

У меня есть ось x как постоянный диапазон, но я пытаюсь сделать ось Y переменной. Мои данные: B2-F2, B3-F3, B4-F4, B5-F5, B6-F6, B7-F7. Я хочу построить каждую из них как ось Y с моим постоянным диапазоном X-оси, но не могу понять, как получить данные оси Y, которые будут переменными.

Я получаю 6 графиков с B2-F2 в качестве оси Y.

Это то, что я до сих пор:

Dim rowno As Integer 
Dim colno As Range 
Dim time As Range 
Dim pressure As Range 
Dim Startrow As Integer 
Dim Lastrow As Integer 

Startrow = 2 
Lastrow = 7 

Set time = Range("B1:F1") 

' THIS LINE HERE IS THE LINE IM STRUGGLING WITH 
Set pressure = "B"&Startrow&":"&"F"&Lastrow 

ActiveSheet.Shapes.AddChart.Select 
ActiveChart.ChartType = xlLine 
ActiveChart.SeriesCollection.NewSeries 
ActiveChart.SeriesCollection(1).XValues = time 
ActiveChart.SeriesCollection(1).Values = pressure 

ответ

0

Вы должны использовать цикл. Что-то, как это должно заставить вас закрыть:

Sub test() 

    Dim rowno As Integer 
    Dim colno As Range 
    Dim time As Range 
    Dim pressure As Range 
    Dim Startrow As Integer 
    Dim Lastrow As Integer 
    Dim i As Long 

    Startrow = 2 
    Lastrow = 7 

    Set time = Range("B1:F1") 
    For i = 2 To 7 

    Set pressure = Range("B" & i & ":F" & i) 

    ActiveSheet.Shapes.AddChart.Select 
    ActiveChart.ChartType = xlLine 
    ActiveChart.SeriesCollection.NewSeries 
    ActiveChart.SeriesCollection(1).XValues = time 
    ActiveChart.SeriesCollection(1).Values = pressure 

    Next i 

End Sub 

Я не думаю, что графики часть совершенно прав, так что надеюсь, вы будете иметь возможность настроить, что, чтобы получить ваши ожидаемые результаты, но это будет по крайней мере решить вашу непосредственная проблема оси Y не обновляется.

+0

Удивительно! Спасибо! :) – Fiona

+0

Любая идея, как перемещать графики? У меня есть это: ActiveChart.ChartArea.Top = rowheight * rowno - 270 ActiveChart.ChartArea.Height = rowheight ActiveChart.ChartArea.Width = 3 * rowheight ... Но это означает, что все 6 графиков перемещаются в одно и то же положение , Мне просто нужно знать, как перемещать графики отдельно? Спасибо! :) – Fiona

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