2015-05-07 90 views
0

我在以编程方式创建Excel工作表和关联图表的MS Access 2007数据库中具有以下代码。尝试使用.tintandshade属性修改图表系列的内部颜色时,出现错误1004。VBA错误1004修改Excel图表

变量'wksIn'是一个传入我的Access子工作表的Excel工作表对象。变量'sRange'是一个在子程序中定义的字符串。

... 
Dim shChart as Excel.Shape 
Set shChart = wksIn.Shapes.AddChart(xlColumnStacked100) 

Dim chChart As Excel.Chart 
Set chChart = shChart.Chart 

with chChart 
    .SetSourceData Range(sRange) 
    .Axes(xlValue).MajorUnit = 0.2 
    .SetElement (msoElementLegendBottom) 

    Dim srSeries As Excel.Series 
    srSeries = chChart.SeriesCollection(1) 
    with srSeries 
    .Interior.Color = RGB(27, 88, 124) 
    .Interior.TintAndShade = 0.6    ' results in error 1004 
    .SetElement (msoElementDataLabelCenter) 
    End With 
End With 

我孜孜以求地避免了所有的选择和主动______引用根据职位在这里。任何人都可以看到1004错误可能发生的明显原因,以及如何纠正问题?

有趣的一点是,.Interior.ThemeColor属性也会导致1004错误。也许他们有关系?

+0

这仅仅意味着'TintAndShade'不是Interior'的'属性。你从哪里得到这个代码?或者,也许,它是'Interior'的一个属性,但是'0.6'对于这个属性不是一个有效的值。进入调试,添加一个观察器到'srSeries',然后在树中搜索'Interior',然后搜索'TintAndShade'。 –

+0

这里的关键是你使用Excel _2007_。在线查找2007年文档变得越来越困难。确保在搜索时,在查询中包含“excel 2007”,并确保您正在查看的结果是针对该版本的。我正在运行2010年,并且总是得到2013年的结果,所以我知道你的痛苦... – FreeMan

回答

0

如评论中所述,Interior并非正确的属性。具有以下

.Interior.Color = RGB(27, 88, 124) 
.Interior.TintAndShade = 0.6    ' results in error 1004 

替换以下行(从您的代码)

.Format.Fill.ForeColor.Color = RGB(27, 88, 124) 
.Format.Fill.ForeColor.TintAndShade = 0.6