2015-06-28 120 views
0

我有一個Excel工作表,其中幾個值相加形成總計。然後我必須手動檢查每個總數是否正確。一旦總計值,我想突出顯示單個單元格並對它們進行顏色編碼。我想通過一個宏如何在excel中對單元格進行顏色編碼。有沒有辦法找出哪些細胞已從公式中加總?Excel VBA - 突出顯示已經求和的單元格

例如;
如果總和值= A1 + A4 + A7,則宏應對這些單元格進行顏色編碼。

任何幫助,非常感謝。

+1

所有的「和細胞」是一系列細胞+細胞+細胞(或更多)?您可以編寫一個宏,將它們拆分爲+符號的數組(我們稱之爲'summedCells'),然後打開每個數組元素的背景顏色。 '範圍(summedCells(i))。Interior.ColorIndex = 5'。 – nhee

回答

0

這可能會給你一個想法。以下代碼會將所選單元格的所有直接先例淺綠色。例如,在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 

這將是很容易修改該代碼以便輸入框彈出要求用戶選擇顏色

0

讓我知道下面的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 
相關問題