2014-09-27 158 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开发团队来说是一个简单的解决方案,除非他们已经全部离开并去过谷歌:-)谷歌文档电子表格没有这个错误!

相关问题