2014-09-27 159 views
0

我通常使用拆分屏幕,比較兩個或更多Excel表格或在線研究信息,然後將其放入工作表中。 Excel很好地突出顯示了被點擊的活動單元格,但是如果我進入瀏覽器或另一個高亮顯示被禁用的表單,很難記住您的位置。在失去焦點時突出顯示Microsoft Excel 2013中的活動單元格

一個解決方案是添加一個VBase代碼,我發現某處突出顯示活動單元格。

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) 
Cells.Interior.ColorIndex = xlNone 
Target.Interior.ColorIndex = 19 'Background Yellow 
End Sub 

這裏的問題是,是,可以說,一列是紅色之前,我點擊它,當它失去專注現在老紅信息消失了,它沒有顏色。我們可以先將信息寫入變量,然後突出顯示黃色,並且當我們再次點擊另一個單元時,我們再次給它賦予原始顏色?什麼是最好的解決方案?

回答

1

下面是一個簡單方法,該方法是忽略任何預先存在的着色:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    Static rng As Range 
    If Not rng Is Nothing Then rng.Interior.ColorIndex = xlNone 
    Set rng = Target 
    rng.Interior.Color = vbYellow 
End Sub 

使用Static聲明意味着rng值不丟失方法退出時,並且是使用一種有用的替代全球。

當您更改選區時,它會取消選擇之前的選區。然而,正如你所注意的,它也不會重新應用任何陰影範圍之前,你選擇它...

該版本使用了一種條件格式的方法,它不會取代任何現有的陰影:CF陰影覆蓋任何現有的填充顏色。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    Static rng As Range 

    If Not rng Is Nothing Then rng.FormatConditions.Delete 
    Set rng = Target 
    With rng.FormatConditions.Add(Type:=xlExpression, Formula1:="=TRUE") 
     .Interior.PatternColorIndex = xlAutomatic 
     .Interior.Color = 49407 
    End With 
End Sub 

當CF被移除時,任何現有的陰影將如前所示顯示。

如果您可能正在選擇整列單元格,則可以考慮將操作限制爲僅限表單中的UsedRange。

+0

非常感謝您的回覆。第一個代碼與我的類似,只要它突出顯示單元格,但在丟失焦點時會覆蓋預先存在的顏色。您發佈的第二個代碼在Excel 2013中不會顯示任何內容。 – 2014-10-11 13:42:51

0

嘗試使用其他電子表格程序。如果微軟看到有足夠多的人從這個bug中撤離Excel,那麼他們會修復它。我認爲這對Excel開發團隊來說是一個簡單的解決方案,除非他們已經全部離開並去過谷歌:-)谷歌文檔電子表格沒有這個錯誤!

相關問題