我通常使用分屏,比较两张或更多Excel表格或在线研究信息,然后将其放入表格中。 Excel很好地突出显示单击的活动单元格,但是如果我进入浏览器或其他突出显示的工作表已停用,则很难记住您的位置。
一种解决方案是添加一个我在某处突出显示活动单元格的VBase代码。
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Cells.Interior.ColorIndex = xlNone
Target.Interior.ColorIndex = 19 'Background Yellow
End Sub
这个问题是,让我说在我点击之前一个列是红色的,当它失去焦点时,现在旧的红色信息消失了,而且没有颜色。我们可以先将信息写入变量,然后突出显示yello,当我们点击另一个单元格时,我们再次给它原始颜色吗?什么是最好的解决方案?
答案 0 :(得分: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
的值不会丢失,并且是使用Global的有用替代方法。
更改选择时,它会取消前一个选择。但是,正如您所注意到的,在您选择它之前,它也不会重新应用该范围的任何阴影...
此版本使用条件格式方法,该方法不会替换任何现有着色: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。
答案 1 :(得分:0)
尝试使用其他电子表格程序。如果微软看到有足够多的人从这个bug上移开Excel,那么他们就会修复它。我说这对Excel开发团队来说是一个简单的解决方案,除非他们都离开并去了Google :-) Google Docs电子表格没有这个错误!