我已经编写了一个 UDF 来计算某些颜色的单元格和某些 LineStyles,我发布了整个函数:
Function CountTime(rData As Range, cellRefColor As Range) As Variant
Dim indRefColor As Long
Dim cellCurrent As Range
Dim cntRes As Variant
Application.Volatile
cntRes = 0
indRefColor = cellRefColor.Cells(1, 1).Interior.Color
For Each cellCurrent In rData
If indRefColor = cellCurrent.Interior.Color Then
cntRes = cntRes + 1
End If
If cellCurrent.Borders(xlDiagonalUp).LineStyle <> xlNone Then
cntRes = cntRes + 0.5
End If
Next cellCurrent
CountTime = cntRes
End Function
rData
现在,我遇到的问题是,当其中一个单元格的颜色或线条属性发生变化时,公式不会自动计算。我已经添加了Application.Volatile
,并且我还尝试通过Worksheet_Change
子触发计算,但是这不起作用,因为 Excel 似乎没有考虑将颜色更改为单元格/工作表的更改。
当用户更改单元格的颜色或线条属性时,有什么方法可以使单元格自动计算和更新rData
?
编辑——已解决 非常感谢 ignotus,ChangeSelection 解决方法对我的目的来说已经足够了。没想到。背景信息也很方便,非常感谢。