VBA错误1004修改Excel图表

时间:2015-05-07 16:01:42

标签: excel vba excel-vba ms-access access-vba

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

变量'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

我孜孜不倦地根据这里的帖子避免了所有选择和Active______参考。任何人都可以看到可能发生1004错误的明显原因,以及如何纠正问题?

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

1 个答案:

答案 0 :(得分:0)

正如评论中所述,内政不是正确的财产。

替换以下行(来自您的代码):

.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