Nome da série de gráficos que referencia o endereço da célula Excel 2010 VBA

1

Estou usando o Excel 2010.

Eu tenho um gráfico de dispersão XY criado e formatado da maneira que gosto. Eu reutilizo esse gráfico várias vezes, então apenas copio e colo o gráfico em uma nova planilha contendo os novos dados que quero plotar. Depois de colar o gráfico na nova planilha, uso a macro a seguir para atualizar o gráfico com os novos dados:

Sub DasyLabOilFDa()

Dim SeriesName As Range
Dim FirstSeriesValues As Range
Dim ElapsedTime As Range

'find cell addresses of elapsed time column
Range("C1").Select 'pick cell above the elapsed time column
Selection.End(xlDown).Select 'pick the elapsed time column header
ActiveCell.Offset(1, 0).Select 'selects first data value in Elapsed Time column
Set ElapsedTime = Range(Selection, Selection.End(xlDown)) 'set ElapsedTime variable to the range of data

'find cell addresses for FirstSeries in the top chart
Range("D1").Select 'pick cell above the first series column
Selection.End(xlDown).Select 'pick the first series column header
Set SeriesName = ActiveCell 'set SeriesName variable to the name of the data column's header
ActiveCell.Offset(1, 0).Select 'selects first data value in data column
Set FirstSeriesValues = Range(Selection, Selection.End(xlDown)) 'set FirstSeriesValues variable to the range of data

ActiveSheet.ChartObjects("TopFDa").Select
ActiveChart.SeriesCollection(1).Name = SeriesName
ActiveChart.SeriesCollection(1).Values = FirstSeriesValues
ActiveChart.SeriesCollection(1).XValues = ElapsedTime

End Sub

Há mais de uma série de dados que estou plotando, mas o código acima é suficiente para mostrar como estou obtendo a macro para preencher o gráfico que colei na nova planilha com os dados da planilha.

Após a execução da macro, o gráfico nomeará corretamente o nome da série, conforme visto na legenda (o nome da série foi determinado pelo cabeçalho da coluna de dados)

A questão é que o nome da série não está fazendo referência ao endereço da célula. Quando procuro editar a série, a caixa de entrada do nome da série fica em branco.

Como posso alterar meu código para que o gráfico resultante faça referência ao endereço da célula do cabeçalho da coluna como o nome da série?

    
por Armadillo 31.07.2015 / 01:24

2 respostas

1

Eu verifiquei a Referência de Desenvolvedor do Excel na minha cópia do Excel 2007 e na documentação da Propriedade Series.Name ele diz isto:

Remarks

You can reference using R1C1 notation, for example, "=Sheet1!R1C1".

Eu testei isso e funciona para mim: eu o configurei para uma célula em particular, e quando mudei o texto naquela célula, o título da série foi atualizado automaticamente.

No seu caso, você deve usar

ActiveChart.SeriesCollection(1).Name = "='" & ActiveSheet.Name & "'!" & SeriesName.Address(,,xlR1C1)
    
por 31.07.2015 / 04:36
-1

@jakemcgregor O nome da sua Série está vazio porque você não selecionou o Cabeçalho, portanto, por padrão, Excel dá seu nome de série vazio.

Por que você consegue seu alcance assim? você poderia simplesmente:

Dim rETime as Range
' Set your default Range
rETime = Range("C1").End(xlDown).Offset(1,0)
'' with this you don't need to do every time
Set ElapsedTime = Range(rETime, rETime.End(xlDown))
Set FirstSeriesValues = Range(rETime.Offset(0,1), _  
                                rETime.Offset(0,1).End(xlDown))
    
por 04.05.2016 / 16:41