У меня есть таблица диаграмм, которую я хочу использовать как шаблон в макросе. Я пытаюсь скопировать таблицу и назначить ее объекту типа диаграммы, но не могу заставить ее работать.
Ниже в коде приведены две строки рабочего кода для создания или копирования листа диаграммы.
Проблема в последней строке кода. Он копирует лист, но затем выдает ошибку перед переходом на следующую строку (ошибка 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, могут возникнуть и другие проблемы, но все равно надеюсь, что это вам хоть немного поможет.