新足迹

 找回密码
 注册

精华好帖回顾

· 思念 (祭外婆) (2008-4-21) fish770 · 珍珠园子 (2005-8-10) susan
· 花卷妹疝气手术纪实 (2010-9-26) si_ssi · 那一棵树(二) (2016-1-23) ahyu
Advertisement
Advertisement
查看: 3852|回复: 6

[其他] 持分求教macro [复制链接]

发表于 2016-8-8 22:26 来自手机 |显示全部楼层
此文章由 banana4apple 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 banana4apple 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Macro 小白,学校出来再也没用过了,在这里虚心求教.....
一个表格,1列是客户名字,1个客户会有多行。再一列是金额,金额是有不同颜色highlighted以表示不同类别。现需要用macro做一个公式,可以计算出各个客户各种颜色下的和。

下面是我凑的,不对,因为重复计算了。可是完全不懂怎么改。求指正。。


Function Sumifclientcolor(rClient As Range, rClientRange As Range, rColor As Range, rSumRange As Range)

    Dim rCell1 As Range
   
    Dim rCell2 As Range

    Dim lCol As Long

    Dim vResult





    lCol = rColor.Interior.ColorIndex


      
        For Each rCell1 In rSumRange

            If rCell1.Interior.ColorIndex = lCol Then
           
            For Each rCell2 In rClientRange
            If rCell2.Value = rClient Then
            vResult = WorksheetFunction.SUM(rCell1, vResult)


            End If
            Next rCell2
            End If

        Next rCell1


   Sumifclientcolor = vResult

End Function
Advertisement
Advertisement

发表于 2016-8-9 09:32 来自手机 |显示全部楼层
此文章由 newSYDer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 newSYDer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
楼主要按客户和颜色排序先

评分

参与人数 1积分 +3 收起 理由
banana4apple + 3 感谢分享

查看全部评分

发表于 2016-8-10 18:04 |显示全部楼层
此文章由 一条大鱼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 一条大鱼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
在金额后面再加一列,表示金额的类别。然后用Pivot Table就行了。

评分

参与人数 1积分 +3 收起 理由
banana4apple + 3 感谢分享

查看全部评分

发表于 2016-8-10 18:30 |显示全部楼层
此文章由 cangaru 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cangaru 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 cangaru 于 2016-8-10 17:31 编辑

Function SumByColor(CellColor As Range, sumRange As Range)
Dim cSum As Long
Dim ColIndex As Integer
ColIndex = CellColor.Interior.ColorIndex
For Each cl In sumRange
  If cl.Interior.ColorIndex = ColIndex Then
    cSum = WorksheetFunction.Sum(cl, cSum)
  End If
Next cl
SumByColor = cSum
End Function

评分

参与人数 1积分 +3 收起 理由
banana4apple + 3 感谢分享

查看全部评分

参尕儒:水中倒影着美丽的白塔
Reflection in the water with a beautiful Baita

发表于 2016-8-10 18:59 来自手机 |显示全部楼层
此文章由 banana4apple 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 banana4apple 所有!转贴必须注明作者、出处和本声明,并保持内容完整
一条大鱼 发表于 2016-8-10 17:04
在金额后面再加一列,表示金额的类别。然后用Pivot Table就行了。

问题是会有很多列,而且同一行会有不同的颜色,也就是类别会不同。

发表于 2016-8-10 19:00 来自手机 |显示全部楼层
此文章由 banana4apple 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 banana4apple 所有!转贴必须注明作者、出处和本声明,并保持内容完整
cangaru 发表于 2016-8-10 17:30
Function SumByColor(CellColor As Range, sumRange As Range)
Dim cSum As Long
Dim ColIndex As Integer

谢谢,我去试试!
Advertisement
Advertisement

发表于 2016-8-10 19:35 |显示全部楼层
此文章由 一条大鱼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 一条大鱼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
banana4apple 发表于 2016-8-10 17:59
问题是会有很多列,而且同一行会有不同的颜色,也就是类别会不同。


我觉得这个思路不错, give a name to colour then use countif.

http://stackoverflow.com/questio ... the-color-of-a-cell
走路的人多了,路才越来越宽;而不是路越来越宽,走路的人才多了。
...pursuit; ...love;...desire.

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部