1

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

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

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

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

Прямо сейчас мое решение состоит в том, чтобы скопировать шаблон, а затем установить 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 ответ1

2

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

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

Dim SheetBeforeChart3 As Long

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

Set WS_chart3 = Sheets(SheetBeforeChart3 + 1)

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .