基于类别名称的VBA Excel数据透视表数据点标记

时间:2016-07-27 04:56:34

标签: excel vba charts categories

我在Excel中有一个通过SQL查询填充的数据表。

此表是数据透视表的数据源,后者又用于创建数据透视表。

我需要在本月(例如2016年7月)以一种颜色和未来在另一种颜色中显示数据。我做了我的研究,似乎我必须操纵源数据(这意味着应该更改SQL查询的结果)。在我的情况下,这是不可能的。

所以我决定突出显示“今日”数据点,以显示过去和未来的相遇。我怎么能用VBA做到这一点?我需要有这种逻辑的东西:

for i=1 to category.count
if categoryname(i)="July-2016" then change marker style
end if
next

谢谢。

1 个答案:

答案 0 :(得分:0)

我使用简单的Excel公式来确定当前月份的数据点索引,然后通过宏循环从项目开始到当前月份改变了线条颜色:

        For i = 1 To DataPointIndex
        ActiveChart.ChartArea.Select
        ActiveChart.SeriesCollection(1).Select
        ActiveChart.SeriesCollection(1).Points(i).Select
        With Selection.Format.Line
                .Visible = msoTrue
                .ForeColor.RGB = RGB(255, 0, 0) 
                .Transparency = 0
                .DashStyle = msoLineSolid       
        End With

类似的可以使用标记,但我更喜欢不同的线条颜色。