Динамический график в Excel 2007 - PullRequest
1 голос
/ 10 октября 2010

Я хочу построить график результатов моей таблицы в Excel.Вот код, который у меня есть:

Sub bow()
'
' bow Macro
'

'
Worksheets("Sheet3").Select
tahX = Cells(3, 3).Value + 2
Xval = Offset(A1, 1, 2, 1, 1)
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range("'Sheet3'!$12:$12,'Sheet3'!$10:$10")
    ActiveChart.ChartType = xlXYScatter
    ActiveChart.SeriesCollection(1).Name = "=""bowe"""
    ActiveChart.SeriesCollection(1).XValues = "='Sheet3'!$12:$12"
    ActiveChart.SeriesCollection(1).Values = "='Sheet3'!$10:$10"
End Sub

Теперь я хочу ограничить значения X до значения, определенного в ячейке C3.Так, например, если C3 = 20, я хочу, чтобы он использовал только первые 20 значений в строке номер 12. Как я могу это сделать?

1 Ответ

1 голос
/ 10 октября 2010

Сина, Я не уверен, что именно ваша проблема, но в этой строке:

ActiveChart.SeriesCollection(1).XValues = "='Sheet3'!$12:$12"

вы указываете строку 12 для построения. Вместо! $ 12: $ 12 вы можете иметь! $ C $ 12: $ L $ 12, которая будет устанавливать диапазон от C3 до L12. Если вы хотите установить строку динамически, вы можете использовать:

Set mcStartX = Worksheets(1).Cells(12, 3)
startColX = mcStartX.Address()
//we assume that in cell C3 we have specified number of cells to be plotted 
toAdd = Cells(3, 3).Value
Set mcEndX = Worksheets().Cells(12, 2 + toAdd)
endColX = mcEndX.Address()

Используя этот код и предполагая, что у вас есть 10 в C3, вы получите $ C $ 12 от startColX и $ L $ 12 от endColX. Остальное просто, вы можете использовать следующий код:

ActiveChart.SeriesCollection(1).XValues = "='Sheet3'!" + startColX + ":" + endColX

Я надеюсь, что это может быть полезно.

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...