МАКРОС НА ActiveChart.SeriesCollection(х)

Программирование на Visual Basic for Applications
Rolo Tomasi
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 18.07.2008 (Пт) 16:26

МАКРОС НА ActiveChart.SeriesCollection(х)

Сообщение Rolo Tomasi » 18.07.2008 (Пт) 16:30

Пишу макрос на основе ActiveChart.SeriesCollection(х) - построение графиков на основе динамических данных , при ActiveChart.SeriesCollection(1) работает нормально , но при выполнения аналогичного макраса но для ActiveChart.SeriesCollection(2)- выдает ошибку (1004), основной код прилагаю:
Sub GRAPH10(resultrange As Range)

resultrange.Select
CellNamber = resultrange.Count
StartRow = resultrange.Cells.Row

StartColumn = resultrange.Cells.Column
Cells(StartRow, StartColumn).Select

RowID = StartRow 'Проверяем со второй ячейки
ColumID = StartColumn

Cells(RowID, ColumID).Select
While ActiveCell.Value <> "Общий фонд производственного времени"

RowID = RowID + 1
Cells(RowID, ColumID).Select
RowNumber = RowNumber + 1
Wend
If RowNumber < 2 Then
Exit Sub
End If
y1 = RowID
x1 = 31
RowID2 = RowID
ColumID2 = ColumID + 1
RowNumber2 = RowNumber

Cells(RowID2, ColumID2).Select
While ActiveCell.Value <> "Общий результат"
RowID2 = RowID2 + 1
Cells(RowID2, ColumID2).Select
RowNumber2 = RowNumber2 + 1
Wend
If RowNumber < 2 Then
Exit Sub
End If

y2 = RowID2
x2 = x1
'MsgBox RowID2
'MsgBox x2

Set sh = ThisWorkbook.Worksheets("РЕМОНТЫ")
sh.Activate
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Select
Dim WS As Worksheet
Set WS = Worksheets("РЕМОНТЫ")
ActiveChart.SeriesCollection(1).Values = WS.Range(WS.Cells(y2, x1 + 4), WS.Cells(y2, x1 + 18))
ActiveChart.SeriesCollection(1).XValues = WS.Range(WS.Cells(223, 35), WS.Cells(223, 49))

End Sub
ПРИ замене 1 на 2 во втором макросе выдает ошибку (МАКРОС надо выполнять для каждого для ActiveChart.SeriesCollection(х) отдельно так как данные лежат в разных местах таблицы)
Может дело в двойной активации charta?

Kalem
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 02.05.2010 (Вс) 22:42

Re: МАКРОС НА ActiveChart.SeriesCollection(х)

Сообщение Kalem » 02.05.2010 (Вс) 22:53

Я могу ошибаться, но возможно дело в том, что не создана новая, вторая т.е., линия. Попробуйте вставить ActiveChart.SeriesCollection.NewSeries.

Set WS = Worksheets("РЕМОНТЫ")
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Values = WS.Range(WS.Cells(y2, x1 + 4), WS.Cells(y2, x1 + 18))
ActiveChart.SeriesCollection(2).XValues = WS.Range(WS.Cells(223, 35), WS.Cells(223, 49))
[Viper] :: Стоит обращать внимание на дату топика в который чертовски хочется написать ответ! Устное замечание за некрофилию!

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: МАКРОС НА ActiveChart.SeriesCollection(х)

Сообщение Debugger » 02.05.2010 (Вс) 23:00

[offtopic]
Зарегистрирован - 02.05.2010 (Вс) 22:42
Сообщение - 02.05.2010 (Вс) 22:53
Похвально....
[/offtopic]

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: МАКРОС НА ActiveChart.SeriesCollection(х)

Сообщение Viper » 03.05.2010 (Пн) 7:08

Debugger писал(а):[offtopic]
Зарегистрирован - 02.05.2010 (Вс) 22:42
Сообщение - 02.05.2010 (Вс) 22:53
Похвально....
[/offtopic]
И для полного счастья еще и замечание за некрофилию 03.05.2010 (Пн) 08.07!
Весь мир матрица, а мы в нем потоки байтов!


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18

    TopList  
cron