Excel 用户函数没有';复制到新单元格后无法工作

Excel 用户函数没有';复制到新单元格后无法工作,excel,vba,Excel,Vba,我有以下函数根据单元格颜色对单元格范围求和 Function SumByColor(CellColor As Range, R As Range) Dim x As Double: x = 0 Dim i As Long: i = CellColor.Interior.Color For Each Item In R If Item.Interior.Color = i Then x = x + Item.Value Next Item SumByColor = x End

我有以下函数根据单元格颜色对单元格范围求和

Function SumByColor(CellColor As Range, R As Range)

Dim x As Double: x = 0
Dim i As Long: i = CellColor.Interior.Color
For Each Item In R
    If Item.Interior.Color = i Then x = x + Item.Value
    Next Item
SumByColor = x

End Function
当我第一次使用它时,它工作得很好。但是,当我将其复制/粘贴到第二个单元格时,结果是原始值-这是有意义的,因为我使用希望结果进入的单元格作为函数调用的第一个参数,并且它会随着复制/粘贴而更改。但是,我改变了单元格的颜色,结果并没有改变我期望的方式

第一个函数调用:

=sumbycolor(J5,$E$1:$E$58)
=sumbycolor(J8,$E$1:$E$58)
函数位于单元格J5中,该单元格为绿色,结果为xxxx

复制/粘贴函数调用:

=sumbycolor(J5,$E$1:$E$58)
=sumbycolor(J8,$E$1:$E$58)
函数位于单元格J8中,该单元格在复制/粘贴时变为绿色,结果为xxxx

然后我将单元格J8的颜色改为蓝色,这本应将结果从xxxx改为yyyy,但事实并非如此

手动重新计算工作表无效,保存工作簿、关闭工作簿并重新打开工作簿也无效。在新的(蓝色)单元格中键入函数调用将给出yyyy的正确结果。更改原始单元格中单元格的颜色也不会导致结果按预期更改

如果我使用另一个单元格来获取颜色代码,也就是使用单元格J8中的颜色和K8中的函数调用,那么它也不起作用。它第一次得到正确的和,但是如果我在J8中更改颜色,它不会更新


当我说“更改单元格颜色”时,我是在使用下拉菜单来更改它,而不是公式或函数。当我这样做时,单元格的颜色属性似乎没有得到更新-在函数中是否需要执行其他操作以确保它使用当前的颜色设置重新计算?

按F2键编辑公式,按enter键。它在Excel 2010中为我重新计算。在excel的其他情况下也会发生这种情况。。。关于超链接的生成和自动数字检测。而且,只要您更改了它更新的任何数据……我几乎可以肯定,没有办法让更改颜色调用用户定义的函数。F2可以转换为代码:“范围”(“A1:A10”)。公式=范围(“A1:A10”)。公式>假设A1:A10中有公式。这将更新udf值。