2017-04-25 73 views
0

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

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) 
    Worksheets("LookupLists").Range.Value = ActiveCell.Address 
End Sub 
+0

你是什么意思的“细胞大纲”?你是指边界吗? –

+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 

但是,这将删除边框每个选择变化。除非你向上移动,否则它的效果不会很明显。

+0

谢谢Amorpheuses。这改变了颜色,但是当我点击单元格时,它仍然是红色的。无效时可以切换回黑色吗? –

+0

查看上面的修改。 – Amorpheuses