Хорошо, я признаю это.Я не очень горжусь решением, но оно делает свою работу.Как уже указывалось в комментариях к вопросу, одним из способов решения этой проблемы является анализ свойства .formula
.Следует обратить внимание на то, что заголовок серии может содержать запятую, поэтому решение сначала фильтрует последний апостроф, а затем использует запятые в качестве разделителей.
Private Function GetSerRng(ser As series, Xval As Boolean) As Range
Dim f As String
Dim i As Integer
Dim parts As New Collection
f = ser.Formula
' filter "
For i = 1 To 2
f = Right(f, Len(f) - InStr(1, f, """"))
Next i
' split by ,
While InStr(f, ",") <> 0
parts.Add Replace(Left(f, InStr(2, f, ",")), ",", vbNullString)
f = Right(f, Len(f) - InStr(2, f, ","))
Wend
' set Range
If Xval Then
Set GetSerRng = Range(parts(1))
Else
Set GetSerRng = Range(parts(2))
End If
End Function
Это не самое элегантное решение, но оноработы.