VBA copia uma planilha de gráfico de um modelo

VBA copia uma planilha de gráfico de um modelo

Tenho um gráfico de planilha que desejo usar como modelo em uma macro. Estou tentando copiar a planilha e atribuí-la a um objeto do tipo gráfico, mas não consigo fazê-la funcionar.

Abaixo no código estão duas linhas de código de trabalho para criar ou copiar uma planilha de gráfico.

O problema vem da última linha do código. Ele copia a planilha, mas gera erros antes de ir para a próxima linha (objeto de erro 424 necessário).

Alguém pode explicar por que isso está acontecendo e uma solução para atribuir a planilha em uma linha.

No momento, minha solução é copiar o modelo e definir WS_chart3 para a planilha ativa. Só não gosto de referências à planilha ativa se puder evitá-las.

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

Responder1

Um problema com certeza é que o método Copy não retorna um objeto (não retorna nada), então você tem que primeiro fazer a cópia e depois pegar a nova planilha e atribuí-la à variável.

Eu acho que você pode simplesmente fazer

Dim SheetBeforeChart3 As Long

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

Set WS_chart3 = Sheets(SheetBeforeChart3 + 1)

Eu realmente não conheço o Excel VBA, pode haver outros problemas, espero que isso ajude você um pouco mesmo assim.

informação relacionada