Ошибка времени выполнения Addchart2 '438' - объект не поддерживает это свойство или метод - PullRequest
0 голосов
/ 22 мая 2018

Я получаю

'Ошибка времени выполнения' 438 '- объект не поддерживает это свойство или метод'

в одном из вложенных элементов.процедуры, которые создают диаграмму.Макрос работает нормально при выполнении с моего компьютера, но выдает ошибку времени выполнения с другого компьютера.Строка, в которой происходит ошибка, находится внутри ActiveSheet.Shapes.AddChart2 (227, xlLine). Выберите

Ниже приведен код подпрограммы и строка, в которой код неисправен.

    'Plot Average Temperature

    Range("BO4", Range("BO4").End(xlDown)).Select
    ***ActiveSheet.Shapes.AddChart2(227, xlLine).Select***
    ActiveChart.SetSourceData Source:=Range("BO1", Range("BO4").End(xlDown))
    'ActiveChart.AutoScaling = True
    ActiveChart.Parent.Cut
    Range("BR4").Select
    ActiveSheet.Paste

Не могли бы вы дать совет?

Спасибо,

1 Ответ

0 голосов
/ 22 мая 2018

Вы не можете в той же команде создать диаграмму, а затем выбрать ее.

Вместо этого сначала используйте переменную, чтобы сохранить диаграмму, а затем сослаться на:

Sub t()
Dim myCht
' Range("BO4", Range("BO4").End(xlDown)).Select ' Unnecessary line. You don't do anything with it.
With Sheets("Sheet1") ' Change the sheet name as needed
    Set myCht = .Shapes.AddChart2(227, xlLine)
    myCht.Select
    ActiveChart.SetSourceData .Range("BO1", .Range("BO4").End(xlDown))
    'ActiveChart.AutoScaling = True
    myCht.Parent.Cut
    .Range("BR4").Select
    .Paste
End With
End Sub

Примечание: я не мог найти способ обойти myCht.Select // ActiveChart....Если кто-то знает, как это сделать без использования .Select, пожалуйста, дайте мне знать!

...