`
发表于 2015/7/23 17:50:16   
头像 等级:学者
积分:99
财富值:250
身份:普通用户

那就用vba 吧。 配合我们工作室开发的 收纳箱还是很容易的。

我只是一个打工仔..
发表于 2015/7/23 17:53:08   
头像 等级:初学者
积分:3
财富值:1
身份:普通用户
那就辛苦您了,那我就等你的好消息了,今天晚上我还用上来看吗?还是干脆等明天再来?
我的个性签名
发表于 2015/7/23 17:54:12   
头像 等级:学者
积分:99
财富值:250
身份:普通用户

回复:12楼


没问题, 这个代码得等一下, 晚上回去帮你看看。 明天再过来看看
我只是一个打工仔..
发表于 2015/7/23 22:33:21   
头像 等级:学者
积分:99
财富值:250
身份:普通用户

按颜色求和的, 已经搞定了

VBA代码如下, 记得要配合方方格子的收纳箱使用。很简单的

 

Option Explicit

Sub 按颜色求和()
On Error Resume Next
Dim sRng As Range
Dim cRng As Range
Dim result As Range
Dim r As Range
Dim choice As Integer

Set sRng = Selection
Dim ncolor As Long
Dim total As Double


choice = Application.InputBox("选择统计方式,0 为按背景颜色统计, 1为按字体颜色统计", "统计方式", Default:=0, Type:=1)
If choice = 0 Or choice = 1 Then

Else
    MsgBox "无效选项,必须为0 或者 1"
Exit Sub

End If

Set cRng = Application.InputBox("选择需要统计的颜色的一个单元格(只需一个单元格)", "选择单元格", Type:=8)
If cRng Is Nothing Then Exit Sub
Set cRng = cRng.Cells(1, 1)

If choice = 0 Then  '背景
    ncolor = cRng.Interior.Color
Else
    ncolor = cRng.Font.Color
End If



total = 0
For Each r In sRng
    If IsNumeric(r.Value) Then
    
    If choice = 0 Then  '背景
        If r.Interior.Color = ncolor Then
         total = total + CDbl(r.Value)
        End If
    Else
        If r.Font.Color = ncolor Then
         total = total + CDbl(r.Value)
        End If
    End If
   
    End If
Next

Set result = Application.InputBox("选择结果存放位置", "选择单元格", Type:=8)
If result Is Nothing Then Exit Sub
result.Value = total

End Sub


我只是一个打工仔..
发表于 2015/7/24 11:13:05   
头像 等级:初学者
积分:3
财富值:1
身份:普通用户

您干嘛不直接在我那张表中作业呢!

我的个性签名
发表于 2015/7/24 17:22:28   
头像 等级:传说级人物
积分:638
财富值:934
身份:普通用户
楼主 配合方方格子工具箱里面的收纳箱就可以的 很方便
我的个性签名
发表于 2015/7/24 17:24:26   
头像 等级:传说级人物
积分:638
财富值:934
身份:普通用户
我做给你看
我的个性签名
发表于 2015/7/24 19:33:29   
头像 等级:初学者
积分:3
财富值:1
身份:普通用户

我有一个思路,您看看可不可行。=

我的个性签名

快速回复

目前不允许游客发表,请 登录 注册 后再发贴。