使用VBA跟踪Excel 2007/2010中的样式更改

我需要跟踪某些表单中的单元格样式更改。 我不能在Excel 2007/2010中使用buid-in跟踪,因为我需要自定义某些内容。 我试图通过Workbook_SheetChange跟踪样式更改,但失败。 当我将单元格从一种风格改变到另一种风格时,它从不会启动。

有没有其他的事件可以用来追踪风格变化? 或者任何解决方法?

格式更改时不会触发事件。

最好的解决方法是监视Worksheet_SelectionChange事件。 当用户单击单元格时,必须存储对单元格的引用以及要监视的所有格式信息。 下一次事件触发时,您必须回头看看他们点击的最后一个单元格,将它的当前格式与保存的格式信息进行比较,这将允许您检测更改。

缺点是你只能检测到他们已经从他们格式化单元格点击离开后的变化。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static LastRange As Range 'The last range selected' 'For example, monitor the background color or the cell' Static LastColorIndex As Integer If LastRange.Cells(1).Interior.ColorIndex <> LastColorIndex Then 'Do what you do' End If Set LastRange = Target LastColorIndex = Target.Interior.ColorIndex End Sub 

这是最简单的情况。 如果一次修改整个单元格的话,事情会变得更加复杂。