如何在散点图中自动着色点(系列)?

时间:2017-03-06 20:38:10

标签: vba excel-vba excel

http://s3.dosya.tc/server11/yvuh7e/v7m_Quadrant.zip.html

附上你可以找到我需要帮助的表格。在" M象限"表格我有一个图表和一个数据透视表。还有一个组合框,可以在某些名称之间切换并更改数据透视表,从而更改图形。

我需要的是以某种方式自动化系列的颜色。当我换成一个新名字时,该系列保留了旧​​颜色,我希望通过以下标准获得颜色

X axis positive, Y axis positive = Green
X axis positive, Y axis negative = Orange
X axis negative, Y axis positive = Blue
X axis negative, Y axis negative = Red

此信息也记录在" M Grafik" sheet,它是数据透视表的资源,位于N Column。以下是一些翻译:

Yeşil = Green,  Kırmızı = Red, Mavi = Blue, Turuncu = Orange

我想在我的按钮和组合框宏下面添加解决方案。因此,每当我更改图形时,colorin都应该重新运行。

此处还有截图:

enter image description here

最好的问候

2 个答案:

答案 0 :(得分:2)

您可以使用这样的方法从Series对象中获取X值和Y值,然后有条件地将R / G / B颜色应用于每个Point' s Fill.ForeColorFill.BackColor

Sub foo()

Dim cht As Chart
Dim srs As Series
Dim pt As Excel.Point
Dim x, y
Dim s As Long
Dim p As Long

Set cht = ActiveSheet.ChartObjects(1).Chart '## Modify if needed

'Loop all series in this chart
For s = 1 To cht.SeriesCollection.Count
    Set srs = cht.SeriesCollection(s)
    'Loop all point in this series
    For p = 1 To srs.Points.Count
        'Get the x and y value of this point
        x = srs.XValues(p)
        y = srs.Values(p)
        Set pt = srs.Points(p)
        pt.Select
        'assign color based on x and y value
        '## NOTE: YOU NEED TO SPECIFY THE R/G/B PARAMETERS FOR EACH.
        Select Case True
            Case x >= 0 And y >= 0 'Green
                pt.Format.Fill.ForeColor.RGB = RGB(0, 255, 0)
                pt.Format.Fill.BackColor.RGB = RGB(0, 255, 0)
            Case x >= 0 And y < 0 'Orange
                'pt.Format.Fill.ForeColor.RGB = RGB(,,)
                'pt.Format.Fill.BackColor.RGB = RGB(,,)
            Case x < 0 And y >= 0 'Blue
                'pt.Format.Fill.ForeColor.RGB = RGB(0,0,255)
                'pt.Format.Fill.BackColor.RGB = RGB(0,0,255)
            Case x < 0 And y < 0 'Red
                'pt.Format.Fill.ForeColor.RGB = RGB(255,0,0)
                'pt.Format.Fill.BackColor.RGB = RGB(255,0,0)
       End Select

    Next
Next
End Sub

答案 1 :(得分:1)

在源数据中添加四列,分别为绿色,橙色,蓝色,红色。根据您在上面列出的条件,使用公式从原始数据列中提取数据。

将四个新列添加到散点图中作为新系列。将每个系列格式化为各自的标记颜色。删除原始数据系列。