我是VBA的新手。在Excel中,我有一个名为“高效”的定义范围,即B2:B10。当用户点击该范围内的单元格时,我希望单元格轮廓变为红色。Excel在定义的范围内更改活动单元格颜色
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Worksheets("LookupLists").Range.Value = ActiveCell.Address
End Sub
我是VBA的新手。在Excel中,我有一个名为“高效”的定义范围,即B2:B10。当用户点击该范围内的单元格时,我希望单元格轮廓变为红色。Excel在定义的范围内更改活动单元格颜色
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Worksheets("LookupLists").Range.Value = ActiveCell.Address
End Sub
将这个在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
但是,这将删除边框每个选择变化。除非你向上移动,否则它的效果不会很明显。
谢谢Amorpheuses。这改变了颜色,但是当我点击单元格时,它仍然是红色的。无效时可以切换回黑色吗? –
查看上面的修改。 – Amorpheuses
你是什么意思的“细胞大纲”?你是指边界吗? –
是的,单元格的边框。 –