在失去焦点时突出显示Microsoft Excel 2013中的活动单元格

我通常使用拆分屏幕,比较两个或更多Excel表单或在线研究信息,然后将其放在表单中。 Excel很好地突出显示被点击的活动单元格,但是如果我进入浏览器或另一个高亮显示被禁用的表单,很难记住你的位置。

一个解决scheme是添加一个VBase代码,我发现某处突出显示活动单元格。

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

问题在于,在点击它之前,我们可以说一列是红色的,当它失去焦点时,旧的红色信息已经消失,没有颜色。 我们可以将这些信息写入一个variables,然后突出显示黄色,当我们再次点击另一个单元格时,我们再次给它原始的颜色。 什么是最好的解决scheme?

这是一个简单的方法,它忽略了任何已有的着色:

 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的值不会丢失,并且是使用Global的有用替代方法。

当您更改select时,将取消select之前的select。 但是,如您所注意的,在select之前,它也不会重新应用范围内的任何阴影。

此版本使用条件格式化方法,不会replace任何现有的着色: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被移除时,任何现有的阴影将被显示如前。

如果您可能正在select整列单元格,则可以考虑将操作限制为仅在表单上的UsedRange。

尝试一个不同的电子表格程序。 如果微软看到有足够多的人从这个漏洞中撤离Excel,那么他们将会修复这个漏洞。 我想说,这是Excel开发团队的一个简单的解决scheme,除非他们已经全部离开并去了谷歌:-)谷歌文档电子表格没有这个错误!