2016-04-29 119 views
0

我想突出顯示基於單元格更改的個別單元格。下面的代碼給我一個調試錯誤。我使用的範圍是A7:AH500,如果這些單個單元格中的任何單元格發生更改,則突出顯示已更改的單元格。還可以將它添加到模塊中,還是必須直接放在工作表上?突出顯示基於單元格更改的單個單元格

If Not Intersect(Target, Range("A7:AH500")) Is Nothing Or _ 
    Not Intersect(Target, Range("A7:AH500")) Is Nothing Then 
    Target.Interior.ColorIndex = 3 
End If 
+0

你正在使用'Target',所以它必須在EventProcedures使用,換句話說,是的,它必須在表直接去 – Rosetta

回答

1

從其他線程完成此關閉;

好吧試試這個 - 刪除剛剛添加到ThisWorkbook對象中的內容。然後在下拉菜單中選擇左側的「Workbook」,右側的「SheetChange」。它應該插入一些代碼。內子(在End Sub代碼之前) - 添加代碼

Target.Interior.ColorIndex = 3 
0

用於檢測單元格更改的代碼必須位於工作表中。執行所需更改的代碼可以位於模塊中。

所以,你可以在每個表(如果不止一個):

Private Sub Worksheet_Change(ByVal Target as Range) 
    If Not Intersect(Target, Range("A7:AH500")) Is Nothing Or _ 
     Not Intersect(Target, Range("A7:AH500")) Is Nothing Then 
      Call UpdateFormat(Target) 
    End If 
End Sub 

和模塊在

Sub UpdateFormat(p_rngCell As Range) 
    p_rngCell.Interior.ColorIndex = 3 
End Sub 

這將讓你一次跨越作出實際邏輯的任何變化多張。

+0

我已經加入在我的工作表中編碼,然後還創建了一個模塊來調用,我已經在定義的範圍內更改了一個值,並且不會突出顯示任何建議? – Luis

+0

我剛剛測試了代碼,它的工作原理。你能否檢查一下你是否沒有其他的'Private Sub Worksheet_Change'來捕捉事件? – yk11

相關問題