• 习近平会见塞尔维亚总统武契奇 2018-09-20
  • 新款沃尔沃XC90上市 售64.38-128.58万 2018-09-19
  • 锐参考·现场 | “铁粉”为何更加支持特朗普——亲历特朗普“竞选式集会” 2018-09-19
  • 山南市民族教育工作:为腾飞插上翅膀 2018-09-19
  • 外媒称特朗普准备将中美贸易战升级:全球市场被泼冷水 2018-09-19
  • 韩国大学生为逃兵役 6个月增重30公斤 2018-09-19
  • 娄飞:32年坚守潜艇 护卫导弹腾飞 2018-09-19
  • 娄飞:32年坚守潜艇 护卫导弹腾飞 2018-09-18
  • 中国电信启动5G手机测试 2018-09-18
  • 台湾一周侃:蔡当局待台民众以冷漠 却昧着良心媚日 2018-09-18
  • 山东这几地供暖时间延长至3月20日 2018-09-07
  • 个头虽小却是“补脑神器” 2018-09-07
  • 别让“一牌难求”阻碍新能源车发展 2018-09-06
  • 临时准备金动用安排 或释放超万亿流动性 2018-09-05
  • 提升新媒体文学的精神品格 2018-09-05
  • Excel VBA自定义函数对数据区域按单元格颜色或者字体颜色汇总

    时间:2017-10-30   作者:snow   来源:Office之家

    应用场景

    自定义函数,对数据区域按单元格颜色或者字体颜色汇总

    知识要点

    1:Function函数过程,4个参数,第一个参数为Range对象、参照条件,第二参数为Range对象、求和区域对象

    2:第三个参数 Boolean对象、求和OR计数,第四个参数Boolean对象、按单元格颜色OR字体颜色,Ture也可以简写为1或其他数字,0或者空缺代表False

    3:Optional 声明变量,表示参数不是必需的。

    4:Application.Volatile 方法 用于将用户自定义函数标记为易失性函数,无论何时在工作表的任意单元格中进行计算时,易失性函数都必须重新进行计算

    Function Color(参照颜色区 As Range, 统计区 As Range, Optional SumorCount As Boolean = False, Optional BackOrFont As Boolean = False)

        Application.Volatile 'application.volatile方法,用于将用户自定义函数标记为易失性函数,无论何时在工作表的任意单元格中进行计算,易失性函数

                             '都必须重新进行计算。非易失性函数只有在输入变量改变时才重新计算,若不用于计算工作表单元格的自定义函数中,则次方法无效

        Dim Cell As Range, Colors, Sum, i

        '如果第四参数是true则背景色求和,否则按字体颜色求和

        Colors = IIf(BackOrFont, 参照颜色区(1).Interior.Color, 参照颜色区(1).Font.Color)

        For Each Cell In 统计区  '遍历求和区

        If BackOrFont Then

            '背景色相同则累加数值及计数器

            If Cell.Interior.Color = Colors Then

                Sum = Sum + IIf(IsNumber(Cell), Cell, 0)

                i = i + 1

            End If

        Else

                '字体色相同则累加数值及计数器

            If Cell.Font.Color = Colors Then

                Sum = Sum + IIf(IsNumber(Cell), Cell, 0)

                i = i + 1

            End If

        End If

        Next Cell

        Color = IIf(SumorCount, Sum, i) '将合计数赋予函数

    End Function

    tag : 颜色   汇总
    发表评论