Excel值不更新

我已经在Excel中为VBA创build了一个函数,它基于不同的单元格来计算某个范围内某个特定颜色的单元格的数量。 这工作正常第一次运行该函数,但是当更改范围中的单元格的颜色或从被计算的颜色更改该值不会更新。 我如何得到它,所以每当我改变颜色,函数不断更新? 工作簿计算设置为自动。

Function CountColor(rSumRange As Range) Dim rCell As Range Dim iCol As Integer Dim vResult iCol = Range("P1").Interior.ColorIndex For Each rCell In rSumRange If rCell.Interior.ColorIndex = iCol Then vResult = vResult + 1 End If Next rCell CountColor = vResult End Function 

改变颜色不会触发Worksheet_Change() ,也不会触发任何Application.Calculate

如果你的工作簿没有太多的公式,你可以试试这个庞大的解决scheme:

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.Calculate End Sub 

它会以牺牲一些性能为代价,但是您可以在代码中添加“Application.Volatile”,以便在工作表发生变化时重新计算。

参考: http : //msdn.microsoft.com/en-us/library/aa213653( v= office.11​​).aspx