如果在定义的范围内,Excel将更改活动单元格颜

时间:2017-04-25 03:55:42

标签: excel-vba colors vba excel

我是VBA的新手。在Excel中,我有一个名为“有效”的定义范围,即B2:B10。当用户单击该范围内的单元格时,我希望单元格轮廓更改为红色。

)

1 个答案:

答案 0 :(得分:0)

将它放在LookupLists代码部分(您可能已经这样做了):

Private Sub Worksheet_SelectionChange(ByVal target As Range)

  Dim rng As Range
  Set rng = Worksheets("LookupLists").Range("Efficient")

  If Intersect(target, rng) Is Nothing Then Exit Sub

  Application.EnableEvents = False
  target.BorderAround ColorIndex:=3
  Application.EnableEvents = True

End Sub

这将更改“单击”(即选中)的单元格的边框。请注意,这也会在该范围内的一组选定单元格周围绘制边框(例如,单击,按住并拖动鼠标),如果使用箭头键移动范围,也会为单元格着色 - 这可能不完全是您的'重新开始。

修改

如果您点击其他地方删除边框,则可以尝试此操作:

Private Sub Worksheet_SelectionChange(ByVal target As Range)

  Dim rng As Range
  Set rng = Worksheets("LookupLists").Range("Efficient")

  Application.EnableEvents = False
  If Intersect(target, rng) Is Nothing Then
    rng.Borders.Color = xlNone
  Else
    target.BorderAround ColorIndex:=3
  End If
  Application.EnableEvents = True

End Sub

但这会删除每个选择更改的边框。除非你向上移动,否则它的效果将不会显着。