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.