VBA копирует рабочий лист диаграммы из шаблона

VBA копирует рабочий лист диаграммы из шаблона

У меня есть таблица диаграмм, которую я хочу использовать как шаблон в макросе. Я пытаюсь скопировать таблицу и назначить ее объекту типа диаграммы, но не могу заставить ее работать.

Ниже в коде приведены две строки рабочего кода для создания или копирования листа диаграммы.

Проблема в последней строке кода. Он копирует лист, но затем выдает ошибку перед переходом на следующую строку (ошибка 424 object required).

Может ли кто-нибудь объяснить, почему это происходит, и предложить решение для назначения листа в одну строку.

Сейчас я решаю скопировать шаблон, а затем установить WS_chart3 для активного листа. Мне просто не нравятся ссылки на активный лист, если я могу их избежать.

Sub test()

Dim WS_chart2 As Chart
Dim WS_chart3 As Chart

    'adds chart sheet but doesn't use a template
    Set WS_chart2 = Charts.Add(After:=Sheets(Sheets.Count))

    'adds sheet but doesn't asign in to variable WS_chart2
    Sheets("template").Copy After:=Sheets(Sheets.Count)

    'adds chart sheet but then errors out
    Set WS_chart3 = Sheets("template").Copy(After:=Sheets(Sheets.Count))

End Sub

решение1

Одной из проблем наверняка является то, что метод Copy не возвращает объект (он ничего не возвращает), поэтому вам придется сначала сделать копию, а затем получить новый лист и присвоить его переменной.

Я думаю, ты можешь просто сделать

Dim SheetBeforeChart3 As Long

SheetBeforeChart3 = Sheets.Count
Sheets("template").Copy After:=Sheets(SheetBeforeChart3)

Set WS_chart3 = Sheets(SheetBeforeChart3 + 1)

Я не очень хорошо знаю Excel VBA, могут возникнуть и другие проблемы, но все равно надеюсь, что это вам хоть немного поможет.

Связанный контент