Excel值未更新

时间:2011-09-12 13:57:37

标签: excel excel-vba vba

我在VBA中为excel创建了一个函数,它根据不同的单元格计算某个范围内某种颜色的单元格数。这样可以首先运行该函数,但是当将该范围中的一个单元格的颜色更改为计数的颜色时,该值不会更新。我如何获得它,以便每当我改变颜色时功能会不断更新?工作簿校准设置为自动。

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

2 个答案:

答案 0 :(得分:3)

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

如果您的工作簿没有太多公式,您可以尝试使用庞大的解决方案:

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

答案 1 :(得分:1)

这将以某些性能为代价,但您可以在代码中添加“Application.Volatile”,以便在工作表发生更改时重新计算。

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