Excel VBA-高亮显示已求和的单元格

Excel VBA-高亮显示已求和的单元格,excel,sum,vba,Excel,Sum,Vba,我有一张Excel表格,其中几个值相加形成总计。然后我必须手动检查每个总数是否正确。一旦这些值相加,我想突出显示各个单元格并对它们进行颜色编码。我知道如何通过宏在excel中对单元格进行颜色编码。有没有办法计算出哪些单元格已从公式中求和 比如, 如果求和值=A1+A4+A7,则宏应为这些单元格进行颜色编码 非常感谢您的帮助。这可能会给您一个想法。以下代码将所选单元格的所有直接前导项涂成浅绿色。例如,在A10中,我有一个公式 =A1+A4+A7 如果在选择A10时调用以下宏,则A1、A4和A7的

我有一张Excel表格,其中几个值相加形成总计。然后我必须手动检查每个总数是否正确。一旦这些值相加,我想突出显示各个单元格并对它们进行颜色编码。我知道如何通过宏在excel中对单元格进行颜色编码。有没有办法计算出哪些单元格已从公式中求和

比如,
如果求和值=A1+A4+A7,则宏应为这些单元格进行颜色编码


非常感谢您的帮助。

这可能会给您一个想法。以下代码将所选单元格的所有直接前导项涂成浅绿色。例如,在A10中,我有一个公式

=A1+A4+A7
如果在选择A10时调用以下宏,则A1、A4和A7的颜色为绿色:

Sub ColorSummands()
    Dim R As Range
    Set R = Selection
    R.DirectPrecedents.Interior.Color = 5296274 'light green
End Sub

修改代码很容易,因此会弹出一个输入框,要求用户选择颜色

让我知道以下VBA代码是否适用于您。 它将允许您突出显示任何工作表中的任何单元格(只要它位于同一工作簿中)。它可以帮助你进行加法、减法、乘法或除法运算,甚至可以同时处理多个公式单元格

Sub color_cells_in_formula()

Dim workrng As Range

Dim lcolor As Long

   Set workrng = Application.Selection

   Set workrng = Application.InputBox("Range", xTitleId, workrng.Address, Type:=8)

If Application.Dialogs(xlDialogEditColor).Show(10, 0, 125, 125) = True Then

  lcolor = ActiveWorkbook.Colors(10)

Else

End If

For Each cell In workrng

If cell.Value <> "" Then

   Dim result As String

   result = cell.Formula

   result = Replace(result, "(", "   ")

   result = Replace(result, ")", "   ")

   result = Replace(result, "-", "   ")

   result = Replace(result, "+", "   ")

   result = Replace(result, "*", "   ")

   result = Replace(result, "/", "   ")

   result = Replace(result, "=", "   ")

   result = Replace(result, ",", "   ")

   Dim cells() As String

   cells = Split(Trim(result), "   ")

   For j = 0 To UBound(cells)

    Range(cells(j)).Interior.Color = lcolor

   Next j

End If

Next cell

End Sub
子颜色\u单元格\u在\u公式()中
变暗工作范围
暗淡的颜色和长的一样
Set workrng=Application.Selection
设置workrng=Application.InputBox(“范围”,xTitleId,workrng.Address,类型:=8)
如果Application.Dialogs(xlDialogEditColor).Show(10,0,125,125)=True,则
lcolor=ActiveWorkbook.Colors(10)
其他的
如果结束
对于workrng中的每个单元格
如果单元格的.Value为“”,则
将结果变暗为字符串
结果=单元格。公式
结果=替换(结果,(,)
结果=替换(结果“)”,“”)
结果=替换(结果“-”,“”)
结果=替换(结果“+”,“”)
结果=替换(结果“*”,“”)
结果=替换(结果“/”,“”)
结果=替换(结果“=”,“”)
结果=替换(结果,,,)
将单元格()设置为字符串
单元格=拆分(修剪(结果),“”)
对于j=0到UBound(单元格)
范围(单元格(j)).Interior.Color=lcolor
下一个j
如果结束
下一个细胞
端接头
所有的“总和单元格”都是一系列单元格+单元格+单元格(或更多)吗?您可以编写一个宏,将它们
拆分成+符号上的数组(我们称之为
summedCells
),然后为每个数组元素启用背景颜色<代码>范围(总和单元格(i)).Interior.ColorIndex=5