Quando você chama SeriesCollection.Name
, o que o Excel está fazendo é atualizar a função SERIES()
que define a série. SERIES()
não pode aceitar funções para argumentos. Ele só aceita um intervalo, um intervalo nomeado ou um argumento de string.
Você precisará fazer isso em duas etapas, como esta:
Sub changeLinks()
Dim i&
Dim name1$, name2$, name3$
name1 = Left(Range("P18").Value, 4)
name2 = Left(Range("I18").Value, 4)
name3 = Left(Range("B18").Value, 4)
For i = 1 To ActiveSheet.ChartObjects.Count
ActiveSheet.ChartObjects(i).Chart.SeriesCollection(1).Name = name1
ActiveSheet.ChartObjects(i).Chart.SeriesCollection(2).Name = name2
ActiveSheet.ChartObjects(i).Chart.SeriesCollection(3).Name = name3
Next i
End Sub