2017-04-25 85 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