更改散点图上的点标记、大小和颜色

时间:2021-01-20 00:17:44

标签: excel vba formatting point scatter

我正在尝试创建一个散点图,其中每个绘图点的点颜色、标记大小和标记样式是根据我的数据表中的参数设置的。

我的表格有大约 50 行数据,分为 A 到 F 六列。A 列 = 名称,B = X 坐标,C = Y 坐标,D = 标记大小,E = 标记样式,F = 标记颜色。我正在尝试绘制一个散点图,其中每个点的形状、大小和颜色都与其他点不同,具体取决于表中该行的相应列中的值。

我已经构建了 VBA 来创建散点图,它运行良好,并且点标签正常工作,这表明我从表格中的每个点获取了正确的信息。然而,当我尝试改变大小、形状和颜色参数时,所有的点都会发生变化(即它们都变成紫色大小为 5 的三角形),而不是每个点都由自己的参数驱动。

在这里难住了。非常感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

我不确定你的情况是什么,但我得到了以下代码来处理下面的电子表格。

Sample Scatterplot and data

Sub TestScatter()
    Dim p As Point
    Dim i As Long

    ActiveSheet.ChartObjects("Chart 1").Activate
    i = 1
    For Each p In ActiveChart.SeriesCollection(1).Points
        i = i + 1
        p.MarkerSize = Cells(i, 4)
        Select Case Cells(i, 5)
            Case "Circle"
                p.MarkerStyle = xlMarkerStyleCircle
            Case "Square"
                p.MarkerStyle = xlMarkerStyleSquare
            Case "Triangle"
                p.MarkerStyle = xlMarkerStyleTriangle
            Case Else
                p.MarkerStyle = xlmarkerstyledefault
        End Select
        Select Case Cells(i, 6)
            Case "Red"
                p.MarkerBackgroundColor = RGB(255, 0, 0)
                p.MarkerForegroundColor = RGB(255, 0, 0)
            Case "Green"
                p.MarkerBackgroundColor = RGB(0, 255, 0)
                p.MarkerForegroundColor = RGB(0, 255, 0)
            Case "Blue"
                p.MarkerBackgroundColor = RGB(0, 0, 255)
                p.MarkerForegroundColor = RGB(0, 0, 255)
            Case Else
                p.MarkerBackgroundColor = RGB(0, 0, 0)
                p.MarkerForegroundColor = RGB(0, 0, 0)
        End Select
    Next p
End Sub