首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Excel图表数据点颜色随筛选器的使用而更改

Excel图表数据点颜色随筛选器的使用而更改
EN

Stack Overflow用户
提问于 2018-02-05 12:05:02
回答 2查看 973关注 0票数 0

我希望有人能帮助我解决以下问题。我使用了3种不同的VBA编码方法(2种来自这个网站),它们都在下面的同一个障碍中失败了。

我有一个电子表格,它使用2列作为散点图的数据源。此图表中的数据点根据第3列中使用的条件格式进行着色。因此,在第3列中,如果值为"X",则数据点应该是粉红色的。否则,数据点应该是绿色的。这工作得很好。我是如何做到这一点的:https://www.reddit.com/r/excel/comments/3x2cme/scatter_plot_with_color_based_on_a_third_value/这是我的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub ColorCode()
    Dim i As Integer
    Dim MyCount As Integer
    MyCount = ActiveChart.SeriesCollection(1).Points.Count * ActiveChart.SeriesCollection.Count
    'MsgBox ActiveChart.SeriesCollection(1).Points.Count * 
    ActiveChart.SeriesCollection.Count
    For i = 1 To MyCount
        ActiveChart.SeriesCollection(1).Points(i).Select
        With Selection.Format.Fill
            .Visible = msoTrue
            .ForeColor.RGB = Range("i" & i + 1).DisplayFormat.Interior.Color
        End With
    Next
End Sub

但是,当我过滤源数据时,数据点的颜色会发生变化。我得出了以下结论:-当数据源未过滤时,第3列中的第4行数据是粉红色的。这很好。-筛选数据源时,第3列的第4行数据为绿色。这很好。-但是,此筛选行的相关数据点是粉红色的,而它应该是绿色的-筛选的源表中的第4行数据将始终保留原始未筛选表的第4行的条件格式。

我需要的是过滤器对数据点的颜色没有影响,但仍然隐藏被过滤掉的数据点。或者,换句话说,在过滤数据时,数据点将保留上面的VBA代码在过滤之前应用的颜色属性。

EN

回答 2

Stack Overflow用户

发布于 2018-02-05 13:27:26

数组很方便。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub ColorCode()
    Dim i As Integer, n As Integer
    Dim MyCount As Integer
    Dim rngColor As Range, vRng() As Range

    MyCount = ActiveChart.SeriesCollection(1).Points.Count * ActiveChart.SeriesCollection.Count
    Set rngColor = Range("i2", Range("i" & Rows.Count).End(xlUp))
    Set rngColor = rngColor.SpecialCells(xlCellTypeVisible)
    For Each Rng In rngColor
        n = n + 1
        ReDim Preserve vRng(1 To n)
        Set vRng(n) = Rng
    Next Rng

    'MsgBox ActiveChart.SeriesCollection(1).Points.Count *    ActiveChart.SeriesCollection.Count
    For i = 1 To MyCount
        ActiveChart.SeriesCollection(1).Points(i).Select
        With Selection.Format.Fill
            .Visible = msoTrue
            '.ForeColor.RGB = Range("i" & i + 1).DisplayFormat.Interior.Color
            .ForeColor.RGB = vRng(i).DisplayFormat.Interior.Color
        End With
    Next
End Sub
票数 0
EN

Stack Overflow用户

发布于 2018-02-11 20:46:46

这有助于解决一些类似的图表格式问题:

Excel文件选项卡>选项>高级>图表

取消选中“当前工作簿的属性跟随图表数据点”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48622211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文