没错。如果我将以下代码中的'Chart_Series_W_Gain_AAPL'中的'C'更改为代码工作的任何其他字母。否则,它会在Series.Formula赋值时抛出错误1004。实际上,如果我使用以'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)"
答案 0 :(得分:4)
MSDN表示您不能使用字母“C”或“R”(上/下)作为名称。我认为这个字母是名字中的第一个字母是R还是C(或r或c),我已经复制了你的错误。
尝试在与公式连接的字符串中使用Name的地址,如下所示:
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的信息:
你不能使用大写和小写字母“C”,“c”,“R”, 或“r”作为定义的名称,因为它们都用作简写 为您选择当前所选单元格的行或列 在名称或转到文本框中输入它们。