是否可以让 Excel 中的单元格光标闪烁?

是否可以让 Excel 中的单元格光标闪烁?

我有一个很大的电子表格 - 里面有相当多的颜色和粗体字体等等。

通常很难看到光标 - 即很难找到所选的单元格。它只是显示为单元格周围略粗的绿线。

我可以让单元格光标更加突出,例如闪烁吗?此功能似乎存在于几乎每个文本应用程序中:光标是闪烁的线或框。但电子表格中没有!或者至少,我不知道任何电子表格程序具有此功能。是否有明显的原因,或者我是否错过了其他明显的方法来使选定的单元格容易看到?

答案1

我是否错过了一些其他明显的方法来使选定的单元格容易被看到?

好吧,当您没有在单元格(或公式栏)中主动输入内容时,“名称框”(位于屏幕左边缘、公式栏左侧、功能区正下方)会显示当前单元格的坐标:

          Excel 工作表,其中“名称框”、列标题和行标签突出显示

(如果您选择了多个单元格和/或多个区域,它会显示您选择的最近区域的左上角。)

此外(如上所示),与活动单元格相对应的列标题和行标签也被突出显示。

此外,我发现点击方向箭头键()移动活动单元格有助于使其在混乱中脱颖而出。当然,如果您选择了多个单元格和/或多个区域,则不应这样做,因为它会清除该选择,只留下一个选定的单元格。(但Shift+direction arrow key 会扩大或缩小选择范围,而不是清除它。)

这是另一种方法。这种方法有点笨拙,但如果您的电子表格太过杂乱,您无法从整体上看到树木,那么这种方法可能正是您所需要的。在功能区中的“主页”选项卡的“单元格”窗格中,单击“插入”,然后选择“插入工作表行”或“插入工作表列”。

          “插入”菜单

这些将在当前选定的行上方插入空白行(或在当前选定的列左侧插入空白列)。插入的行数(或列数)等于当前选定的行数(或列数)。新区域将为空白(即单元格将具有空白内容),但它们将继承选定单元格上方(或左侧)单元格的格式。

这可能会产生比其他建议更引人注目的视觉效果。当然,这些命令会修改电子表格,因此您应该立即使用“撤消”或补充“删除”功能。

“插入单元格...”也可以起作用,但效果不太好。

所有这些活动解决方案(那些direction arrow key和“插入”解决方案)都会滚动工作表,以便将当前单元格带入视图(如果需要)。

答案2

斯科特建议 好的列表

让我建议一些其他的方法:

您可以按Ctrl+C复制活动单元格。单元格周围会出现闪烁的边框。(如果有多个选择,此操作有时会失败。)您可以按Esc停止闪烁。

您可以按Shift+Space Bar来选择与最新选择相对应的行,或按Ctrl+Space Bar来选择相应的列。不幸的是,如果您选择了区域,则这些会导致选择本身丢失。例如,如果您选择了区域F17:H42并按Shift+ Space Bar,您将 17:42选择行。原始角单元格之一(、F17或)可能会突出显示,但通常,您无法知道原始选择的两个列边界(和 )。H17F42H42FH

您可以按Ctrl+Backspace显示活动单元格(最近选择的单元格)。如果您滚动到活动单元格之外,按Ctrl+Backspace会将其滚动回视图。

答案3

这是另一个想法,灵感来自Leonardo Alves Machado 的回答. 创建这些 VBA 例程(“宏”):

Sub Flash()
'
' Flash Macro
'
    Call toggle
    Application.OnTime Now + TimeValue("00:00:01"), "toggle"
'
End Sub

Sub toggle()
'
    For Each cell In Selection
        tmp = cell.Interior.Color
        ' Things can be explicitly colored white ((255,255,255) = (FF,FF,FF) = &HFFFFFF),
        ' but white things are often actually uncolored.  Check whether this cell actually
        ' has no color and no pattern, and, if so, set a fake just-barely-off-white color
        ' that serves as a flag.
        If tmp = &HFFFFFF And cell.Interior.ColorIndex = xlNone _
                                                And cell.Interior.Pattern = xlNone Then
            tmp = &HFFFFFE      ' &HFFFFFF = pure white; &HFFFFFE = (pure white) - 1
        End If
        Red = tmp Mod 256
        tmp = tmp \ 256
        Grn = tmp Mod 256
        tmp = tmp \ 256
        Blu = tmp Mod 256
        ' Change to a different color (through a reversable process).
        Red = (Red + 128) Mod 256
        Grn = (Grn + 128) Mod 256
        Blu = (Blu + 128) Mod 256
        tmp = RGB(Red, Grn, Blu)
        ' If we're being called for the second time, the above reconstructs the original
        ' color.  If the reconstructed color is &HFFFFFE, that (probably) means that
        ' the cell was originally uncolored, in which case we restore it to that state.
        ' Otherwise, just restore the color.
        If tmp = &HFFFFFE Then
            cell.Interior.Pattern = xlNone
        Else
            cell.Interior.Color = tmp
        End If
    Next
End Sub

现在,当您运行该Flash例程时,它将调用toggle,这会将选定区域内所有单元格的填充(内部)颜色更改为完全不同的颜色。(如果您可以改进此颜色翻转算法,请告诉我们您的想法。)然后,它会toggle在一秒钟后再次被调用;这将恢复原始颜色并产生闪烁效果。

如果你想多次闪烁,只需将调用宏更改为类似

    Call toggle
    Application.OnTime Now + TimeValue("00:00:01"), "toggle"
    Application.OnTime Now + TimeValue("00:00:02"), "toggle"
    Application.OnTime Now + TimeValue("00:00:03"), "toggle"
    Application.OnTime Now + TimeValue("00:00:04"), "toggle"
    Application.OnTime Now + TimeValue("00:00:05"), "toggle"

修改toggle以处理整个当前列和/或行很简单,留作练习。

代码比实际需要的要复杂一些。我试图在评论中解释原因,但我忽略了基本原理,即当 Excel 单元格指定了“填充”时,即使是纯白色,B2 边框线消失了。你可以通过将单元格设置为纯白色来 亲自查看 :

    单元格为纯白色填充,无边框(或不可见边框)

在我添加特殊情况之前,当我Flash在无色单元格(默认格式)上运行代码时,第一次调用将toggle其更改为纯灰色(127,127,127),第二次调用将其“改回”纯白色 - 当然,这是不是以前的情况如何,导致边界线消失。

如果在闪烁序列完成之前移动光标, toggle将更改原始选择的颜色,然后更改新(修改)选择的颜色。因此这些更改不会相互抵消(它们应该如此),因此您将得到一堆颜色发生变化的单元格。所以不要这样做。

答案4

我相信有办法。我发现这个博客教你如何做。基本上它说:

  1. 选择要闪烁的单元格。
  2. 从“格式”菜单中选择“样式”。Excel 显示“样式”对话框。
  3. 在样式名称框中,输入新样式名称。(在本示例中,使用样式名称 Flashing。)
  4. 使用对话框中的控件,根据需要修改样式的任何属性。
  5. 单击“确定”。

现在,您可以将样式应用于工作簿中所需的任何其他单元格。现在创建宏(有两个),如下所示:

Dim NextTime As Date

Sub StartFlash()
    NextTime = Now + TimeValue("00:00:01")
    With ActiveWorkbook.Styles("Flashing").Font
        If .ColorIndex = xlAutomatic Then .ColorIndex = 3
        .ColorIndex = 5 - .ColorIndex
    End With
    Application.OnTime NextTime, "StartFlash"
End Sub

Sub StopFlash()
    Application.OnTime NextTime, "StartFlash", schedule:=False
    ActiveWorkbook.Styles("Flashing").Font.ColorIndex = xlAutomatic
End Sub

要启动项目闪烁,只需运行 StartFlash。使用闪烁样式格式化的单元格将大约每秒一次在红色和白色文本之间交替。当您想要关闭闪烁时,只需运行 StopFlash 宏。

相关内容