0

我在 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

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

我将代码更新为

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以验证准确性。除了更改标记颜色外,一切正常。

4

2 回答 2

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

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

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

于 2017-05-02T15:03:44.393 回答
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
于 2017-05-02T15:26:43.557 回答