我正在尝试创建一个散点图,其中每个绘图点的点颜色、标记大小和标记样式是根据我的数据表中的参数设置的。
我的表格有大约 50 行数据,分为 A 到 F 六列。A 列 = 名称,B = X 坐标,C = Y 坐标,D = 标记大小,E = 标记样式,F = 标记颜色。我正在尝试绘制一个散点图,其中每个点的形状、大小和颜色都与其他点不同,具体取决于表中该行的相应列中的值。
我已经构建了 VBA 来创建散点图,它运行良好,并且点标签正常工作,这表明我从表格中的每个点获取了正确的信息。然而,当我尝试改变大小、形状和颜色参数时,所有的点都会发生变化(即它们都变成紫色大小为 5 的三角形),而不是每个点都由自己的参数驱动。
在这里难住了。非常感谢任何帮助或建议。
答案 0 :(得分:0)
我不确定你的情况是什么,但我得到了以下代码来处理下面的电子表格。
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