2012-04-12 53 views
0

我需要跟蹤某些工作表中的單元格樣式更改。我無法在Excel 2007/2010中使用buid-in跟蹤功能,因爲我需要自定義某些內容。我試圖通過Workbook_SheetChange跟蹤樣式更改,但失敗。當我將單元格從一種樣式更改爲另一種樣式時,它從不會啓動。使用VBA跟蹤Excel 2007/2010中的樣式更改

是否有任何其他事件可用於追蹤風格變化?或者任何解決方法?

回答

2

格式變更沒有觸發事件。

最好的解決方法是監視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 

這是最簡單的情況。如果他們一次修改整個範圍的單元格,事情會變得更加複雜。