那就对了。 如果我在下面的代码更改“Chart_Series_W_Gain_AAPL”的“C”的任何其他字母代码工作。 否则,它抛出Error 1004在Series.Formula分配。 事实上,如果我使用与“C”开头的任意随机名称的代码失败,而不是其他。 我试着关闭Excel和重新打开,但同样的问题。 我碰到这来是因为我一直在我的命名图表系列定义的名称与图表的名称开头的,但后来我决定,这是混乱,我试图在前面加上用作图表系列与“Chart_Series_”定义的名称。 漂亮的良性变化,人们会认为。
Dim objChartWGain As Chart
Dim objSeries As Series
Set objChartWGain = Charts("W Gain")
Set objSeries = objChartWGain.SeriesCollection.NewSeries
ActiveWorkbook.Names.Add "Chart_Series_W_Gain_AAPL", "=W_Gain_Data_Array(W_Gain_Data_Alloc,1,W_Gain_Data_GainLossCurr)"
objSeries.Formula = "=SERIES(""AAPL"",,'ThomTrade-charts.xlsb'!Chart_Series_W_Gain_AAPL,1)"
MSDN表示不能使用的字母“C”或“R”(上/下)为名称。 我认为这是有关当这封信是在名称的第一个字母的错误是R或C(或r或c)这是我复制你的错误。
尝试在级联到您的公式,像这样的字符串使用名称的地址:
Sub ChtSeries()
Dim objChartWGain As Chart
Dim objSeries As Series
Dim nmAddress As String
Dim n As Name
Set objChartWGain = Charts("W Gain")
'Replace with your Name definition:'
Set n = ActiveWorkbook.Names.Add("Chart_Series_W_Gain_AAPL", Sheets("Sheet2").Range("A2:A4"))
'Turn the Name's address in to a usable string:'
nmAddress = Replace(n.RefersTo, "=", vbNullString)
Set objSeries = objChartWGain.SeriesCollection(1)
objSeries.Formula = "=SERIES(""AAPL"",," & nmAddress & ",1)"
End Sub
信息从MSDN这里:
http://office.microsoft.com/en-us/excel-help/define-and-use-names-in-formulas-HA102749565.aspx#_Learn_about_syntax
你不能使用大写和小写字符“C”,“C”,“R”或“R”的定义的名称,因为它们都是用作速记用于选择行或列当前选定单元格时,你在名称中输入邮件或到文本框。