Excel中根据单元格颜色进行排序

分类:代码, 博客 标签:,

Excel中如果你想按照单元格颜色进行排序,Excel本身并不提供任何内建函数或者操作来完成,但可以使用自定义函数来完成。使用下面的函数可以获取单元格颜色:

Function GetFillColor(rng As Range) As Long
    GetFillColor = rng.Interior.ColorIndex
End Function

假定填充颜色位于A列,现在你只需在空白列B列输入公式,如:

=GetFillColor(A2)

B列相应所有行都填入相应公式后,便得到了A列的填充颜色,这样就可以对B列进行排序,这样便完成了对A按照颜色来进行排序。

如果你需要更细致地调整排列顺序(如先黄色然后红色最后蓝色),这样你就不能像刚才那样仅仅使用颜色值,你需要先建立一个颜色排序基准表,接着采用下面的自定义函数:

Function GetColor(rngIndex As Range, rngSource As Range) As Long
    Dim lngColor As Long
    Dim J As Integer
    
    Application.Volatile
    lngColor = rngSource.Interior.ColorIndex
    
    GetColor = 99       'Set to default color
    For J = 1 To rngIndex.Count
        If rngIndex(J).Interior.ColorIndex = lngColor Then
            GetColor = J
        End If
    Next J
End Function

假定E1到E9是你设置的颜色排序基准表,你就可以使用(在空白列B列中输入):

=GetColor($E$1:$E$9,A2)

来完成对单元格颜色索引的获取,接下来像刚才一样排序就OK了。



分类:代码, 博客 标签:,

前一篇:三角进化算法

后一篇:思维进化计算

发表评论

You must be logged in to post a comment.