仅在名称以“c”开头的Excel VBA运行时错误1004

时间:2013-04-14 18:01:15

标签: excel excel-vba excel-2010 vba

没错。如果我将以下代码中的'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)"

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的信息:

http://office.microsoft.com/en-us/excel-help/define-and-use-names-in-formulas-HA102749565.aspx#_Learn_about_syntax

  

你不能使用大写和小写字母“C”,“c”,“R”,   或“r”作为定义的名称,因为它们都用作简写   为您选择当前所选单元格的行或列   在名称或转到文本框中输入它们。