By: Mrinmoy

In reply to Andrew.

Hi Andrew,
It happens because of the variable types. The two variables X & Y currently have the variable type “Long” and “Integer” respectively. To get a sum value up to 2 decimal places, make both variable types “Double”. This will reserve the decimal places.

Here’s the modified code:

Function SumColoredCells(CC As Range, RR As Range)
Dim X As Double
Dim Y As Double
Y = CC.Interior.ColorIndex
For Each i In RR
If i.Interior.ColorIndex = Y Then
X = WorksheetFunction.Sum(i, X)
End If
Next i
SumColoredCells = X
End Function

I hope this will work. Regards!