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

那就对了。 如果我将以下代码中的“Chart_Series_W_Gain_AAPL”中的“C”更改为代码工作的任何其他字母。 否则它会在Series.Formula赋值中抛出一个错误1004。 实际上,如果我使用任何以“c”开头的随机名,则代码将失败,否则不会。 我已经尝试closuresExcel并重新打开,但同样的问题。 我遇到过这个问题,因为我一直以图表名字命名图表系列定义的名称,但后来我认定这是令人困惑的,我尝试在“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),我已经复制了你的错误。

尝试使用连接到公式的string中的名称地址,如下所示:

 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”作为定义名称,因为它们全部用作select当前选定单元格的行或列的简写forms在“名称”或“转到”文本框中input它们。