VBA控制Access 2010折线图标记颜色

时间:2017-05-02 14:30:57

标签: vba ms-access-2010 pivot-chart

我在Access 2010中创建了一个支点线图。我正在尝试使用VBA格式化线条和标记,这样无论系列名称如何,我的图表都看起来都一样。除了更改标记颜色外,我可以完成所有工作。这是我正在使用的......

    Private Sub Form_Load()

'Comp 1
Me.ChartSpace.Charts(0).SeriesCollection(0).Line.Color = RGB(0, 128, 255)
Me.ChartSpace.Charts(0).SeriesCollection(0).Line.Weight = 6
Me.ChartSpace.Charts(0).SeriesCollection(0).marker.Size = 6
Me.ChartSpace.Charts(0).SeriesCollection(0).marker.Style = 1
Me.ChartSpace.Charts(0).SeriesCollection(0).MarkerForegroundColor = vbRed

我已经为标记颜色尝试了很多不同的迭代,但我不断得到"运行时错误''对象不支持此属性或方法"无论我如何尝试。任何帮助表示赞赏。

我将代码更新为

Private Sub Form_Load()

Dim p As Long

'Comp 1
With Me.ChartSpace.Charts(0).SeriesCollection(0)
    .Line.Color = RGB(99, 66, 255)
    .Line.Weight = 6
    .marker.Size = 8
    .marker.Style = 2

pc = .Points.Count

For p = 1 To pc
    .Points(p).MarkerForegroundColorIndex = vbRed
Next
End With

但仍有同样的问题。我添加了pc = .points.count来验证准确性。除了更改标记颜色外,一切都有效。

2 个答案:

答案 0 :(得分:1)

您可以尝试:

Dim p as Long
With Me.ChartSpace.Charts(0).SeriesCollection(0)
    .Line.Color = RGB(0, 128, 255)
    .Line.Weight = 6
    .marker.Size = 6
    .marker.Style = 1
    For p = 1 to .Points.Count
        .Points(p).MarkerForegroundColor = vbRed
    Next
End With

MarkerForeGroundColorPoint对象的属性,而不是Series对象的属性。来自Excel的文档,但在使用VBA的不同Office应用程序中应该是相同的:

https://msdn.microsoft.com/en-us/library/office/ff834722.aspx

答案 1 :(得分:0)

我懂了!!谢谢 David Zemens 指出我正确的方向。我只需调整.points行,现在它完美无缺。需要注意的是,我还需要调整For行,因为Access是基于0的。这是最终的代码。谢谢大家。

With Me.ChartSpace.Charts(0).SeriesCollection(0)
    .Line.Color = RGB(99, 66, 255)
    .Line.Weight = 6
    .marker.Size = 8
    .marker.Style = 2

pc = .Points.Count

For p = 0 To pc - 1
    .Points(p).Interior.Color = vbRed
Next
End With