2016-04-29 98 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

相关问题