Excel怎样使有颜色自动等于下面无颜色部分之和
1、首先打开Microsoft Office Excel 2007,新建文档并保存文件名《Excel怎样使有颜色自动等于下面无颜色部分之和 .xlsm》(演示文件,下面代码复制到能运行宏的工作簿都可以)如图。

2、然后按下快捷键ALT+F11打开VBE(宏)编辑界面,然后点菜单栏【插入】下拉中列表中点【模块(M)】如图。

3、然后插入了一个模块1,在代码框中复制如下代码:
Sub 数锯颜色分隔求和()
'2020-10-24 21:38:51
Dim myrs As Range, mb(), n As Long, i As Long
Set myrs = Selection
ReDim mb(1 To myrs.Count, 1 To 3)
n = 0
For i = 1 To myrs.Count
If myrs.Cells(i).Interior.Color = 49407 Then
n = n + 1
If n = 1 Then
If i < myrs.Count Then
If myrs.Cells(i + 1).Interior.Color <> 49407 Then
mb(n, 1) = i
mb(n, 2) = myrs.Cells(i + 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
Else
n = n - 1
End If
End If
Else
If i < myrs.Count Then
If myrs.Cells(i + 1).Interior.Color <> 49407 Then
mb(n, 1) = i
mb(n, 2) = myrs.Cells(i + 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
mb(n - 1, 3) = myrs.Cells(i - 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
Else
n = n - 1
End If
End If
End If
End If
If i = myrs.Count Then
If myrs.Cells(i).Interior.Color <> 49407 Then
mb(n, 3) = myrs.Cells(i).Address(RowAbsolute:=False, ColumnAbsolute:=False)
Else
mb(n - 1, 3) = myrs.Cells(i - 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
n = n - 1
End If
End If
Next i
For i = 1 To n
myrs.Cells(mb(i, 1)).Formula = "=SUM(" & mb(i, 2) & ":" & mb(i, 3) & ")"
Next i
End Sub


4、常用颜色代码数查看上次经验《Excel怎样计算填充色个数》宏代码数字。

5、以上操作动态过程如下:

6、回到工作表窗口,首先选求和的单元格区域,然后运行【数锯颜色分隔求和】宏(菜单栏中点【视图】中下列表中【宏】列表【查看宏(V)】打开宏对方框,选该宏名,执行),有颜色单元格自动填写公式计算无颜色的单元格和,运行过程如下图。


7、如果觉得这篇经验帮到了您,请点击下方的 “投票点赞" 或者“收藏”支持我!还有疑问的话可以点击下方的 “我有疑问”,谢谢啦!