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

VBA控制Access 2010折线图标记颜色,vba,ms-access-2010,pivot-chart,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).L

我在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
以验证准确性。除了更改标记颜色之外,其他一切都可以正常工作。

您可以尝试:

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
对象的属性,而不是
系列
对象。Excel中的文档,但在使用VBA的不同Office应用程序中应相同:


我明白了!!谢谢大卫·泽蒙斯 为我指明了正确的方向。我只需要在
.points
行中来回走动,现在它工作得非常好。注意,我还需要调整行的
,因为访问是基于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

不确定在Access中是否相同,但请尝试使用Point.MarkerForeGroundColor()与以前相同的问题使用您正在使用的尝试更新您的代码?最新迭代
Me.ChartSpace.Charts(0).serieCollection(0).Point.MarkerForeGroundColor=vbRed
您需要按索引指定点,例如
.Points(0).MarkerForegroundColor
等,因此可能需要在
集合上执行循环。