Я пытаюсь изменить существующий код VBA (Excel), который создает графики диаграмм, и сделать его более гибким.
Я знаю, что следующие фрагменты кода делают одно и то же:
Range(Cells(12, 2), Cells(15, 2)).Select
более или менее идентичен:
Range("B12:B15").Select
Моя цель состояла в том, чтобы иметь график, который представляет гибкое количество строк.
Поэтому я изменил существующий код:
ActiveChart.SetSourceData Source:=Sheets("Log-Data").Range("B12:B200"), PlotBy:=xlColumns
to
Dim LastRow As Integer
LastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
ActiveChart.SetSourceData Source:=Sheets("Log-Data").Range(Cells(12, 2), Cells(LastRow, 2)), PlotBy:=xlColumns
Теперь всякий раз, когда я выполняю код, я получаю:
Ошибка выполнения «1004»: ошибка, определяемая приложением или объектом.
Переменная LastRow
не проблема: у меня будет тот же результат, если я заменю ее на 200.
Что я делаю не так?
Ваше здоровье
Питер
sheetname.Range(Cells(a,b), Cells(a2,b2))
, вы всегда должны уточнять каждыйCells()
ссылкой на лист: в противном случаеCells()
всегда будет ссылаться на ActiveSheet, что может быть не так, как вы предполагали. - person Tim Williams   schedule 05.04.2013