• 贵州安顺:扶贫工作不作为 7名干部被追责 2018-07-16
  • “微信红包带病毒”是假消息 2018-07-16
  • 深圳现无人驾驶公交车? 涉事企业:车上有司机监控 2018-07-16
  • 央行连续八日暂停公开市场操作 2018-07-15
  • 辽宁省深化国家监察体制改革试点工作全面推进 2018-07-15
  • 农业部:到2020年中国新型职业农民将达2000万人 2018-07-15
  • 中高协发布2018年度高尔夫球运动员注册办法 2018-07-15
  • 阿里巴巴豪掷224亿港元 购高鑫零售36.16%股权 2018-07-14
  • 郭树清出任央行党委书记 央行现“双首长”制 2018-07-14
  • 湖南省社科院推出2017年度“十大创新成果”——新华网——湖南 2018-07-14
  • 隋晓会:顺应媒体融合态势 合力讲好中国故事 2018-07-14
  • AWE 2018 夏普携多款空气净化器产品亮相 2018-07-13
  • 潘之琳“演技小花”初长成 2018-07-13
  • 酷骑单车拖欠数亿资金未归还 中消协谴责其挪用押金 2018-07-13
  • 揭网络传销迷惑大众伎俩:消费返利、防病养老…… 2018-07-13
  • 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 : 颜色   汇总
    发表评论