помогите с графиком!

Программирование на Visual Basic for Applications
aniutik
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 25.05.2004 (Вт) 9:38

помогите с графиком!

Сообщение aniutik » 07.06.2004 (Пн) 11:07

Подскажите, пожалуйста, в чем дело
Пишу такой вот код:

Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets("лист1").Range(Cells(ur + 3, uc + 1), Cells(ur * 2 + 3, uc + 1)), PlotBy:=xlColumns
в этой строке выдает ошибку: Method 'Cells' of object '_Global failed'

ActiveChart.SeriesCollection(1).XValues = "=лист1!Cells(ur + 3, 1), Cells(ur * 2 + 3, 1)"
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:= _
"график"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = _
"ффф"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "ввв"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "ааа"
End With
ActiveChart.ChartArea.Select
ActiveChart.PlotArea.Select
ActiveChart.SeriesCollection(1).Select
ActiveChart.ChartArea.Select

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.06.2004 (Вт) 9:38

Ну так правильно всё. Ты даёшь классифицированный range с листа1, а в качестве аргументов идут ячейки с текущего листа, а они могут и не принадлежать листу1. Тогда уж
Код: Выделить всё
Sheets("лист1").Range(Sheets("лист1").Cells(ur + 3, uc + 1), Sheets("лист1").Cells(ur * 2 + 3, uc + 1))
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

aniutik
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 25.05.2004 (Вт) 9:38

Сообщение aniutik » 08.06.2004 (Вт) 10:39

теперь ошибка в этой строке "Нельзя установить свойство XValues класса Series"
В чем дело? Не пойму никак :(
ActiveChart.SeriesCollection(1).XValues = "=Лист1!Range(Sheets('Лист1').Cells(ur + 3, 1),Sheets('Лист1').Cells(ur * 2 + 3, 1))"

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.06.2004 (Ср) 9:28

Так там что ожидается - Range или текст? :)
Если текст, то приведи его в божеский вид, т.е. замени все эти range на обычные адреса конечных ячеек. Для этого нужно просто взять проперть Address у результирующего Range.
Если range, убери кавычки, а вместо Лист1 будет, конечно же, worksheets("Лист1").
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

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

Сейчас этот форум просматривают: Google-бот и гости: 112

    TopList