KutoolsforOffice — 一套方案,五大工具。事半功倍。

如何让 Excel 窗口始终保持在最前面?

作者Xiaoyang修改日期

您是否曾在多任务处理时,因 Excel 窗口总被其他应用程序遮挡而感到困扰?许多用户希望工作簿窗口能始终置顶,以便在使用浏览器或其他桌面程序(例如手动从浏览器或其他应用中转录数据)时,仍能随时参考或向 Excel 输入数据。这一功能对使用双显示器、进行演示,或频繁在 Excel 与其他软件之间切换的用户尤为实用。

遗憾的是,Microsoft Excel 本身并未提供内置设置或选项,让 Excel 窗口始终置顶于其他窗口之上。无论您使用的是哪个版本,也不论是 32 位还是 64 位 Office,其标准界面均不支持直接将 Excel 固定在所有打开窗口的最前端。不过,仍有替代方案可实现这一功能。以下将介绍一种适用于多种使用场景的 VBA 代码方法。

使用 VBA 代码让 Excel 窗口始终保持在最前


使用 VBA 代码让 Excel 窗口始终保持在最前

此 VBA 代码解决方案可将当前活动的 Excel 窗口置顶,确保其始终位于所有其他窗口之上,不会被其他应用程序遮挡。无论您使用的是 32 位还是 64 位版本的 Office,下方提供的 VBA 脚本均完美兼容。该方法特别适合高级 Excel 用户,或在无法安装额外软件的环境中高效使用。

操作前请务必保存您的工作,因为运行宏时偶有意外错误,可能导致 Excel 重启。此外请注意,此解决方案仅对您当前执行宏的 Excel 窗口生效,其他 Excel 实例不会自动保持在最前。

1. 按住键盘上的 ALT + F11 键,即可启动 Microsoft Visual Basic for Applications 编辑器窗口——这是您在 Excel 工作表中输入和管理 VBA 代码的专属环境。

2. 在 VBA 编辑器中,单击插入> 模块,为您的工作簿添加一个新模块。然后,将以下 VBA 代码复制并粘贴到打开的模块窗口中:

VBA 代码:让 Excel 窗口始终保持在最前

'Update 20140909
#If Win64 Then
    Public Declare PtrSafe Function SetWindowPos _
        Lib "user32" ( _
            ByVal hwnd As LongPtr, _
            ByVal hwndInsertAfter As LongPtr, _
            ByVal x As Long, ByVal y As Long, _
            ByVal cx As Long, ByVal cy As Long, _
            ByVal wFlags As Long) _
    As Long
#Else
    Public Declare Function SetWindowPos _
        Lib "user32" ( _
            ByVal hwnd As Long, _
            ByVal hwndInsertAfter As Long, _
            ByVal x As Long, ByVal y As Long, _
            ByVal cx As Long, ByVal cy As Long, _
            ByVal wFlags As Long) _
    As Long
#End If
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOMOVE = &H2
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Sub ShowXLOnTop(ByVal OnTop As Boolean)
    Dim xStype As Long
    #If Win64 Then
        Dim xHwnd As LongPtr
    #Else
        Dim xHwnd As Long
    #End If
    If OnTop Then
        xStype = HWND_TOPMOST
    Else
        xStype = HWND_NOTOPMOST
    End If
    Call SetWindowPos(Application.hwnd, xStype, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)
End Sub
Sub SetXLOnTop()
    ShowXLOnTop True
End Sub
Sub SetXLNormal()
    ShowXLOnTop False
End Sub

此代码通过系统级 API 调用控制窗口的置顶状态。请确保您的 Excel 设置中已启用宏,以保证 VBA 代码正常运行。若出现“宏已被禁用”的提示,请更新 Excel 的信任中心设置,允许宏执行。

3. 输入代码后,按 F5 或单击 VBA 编辑器中的运行按钮,即可弹出对话框,列出所有可用的宏。选择名为 SetXLOnTop 的宏,然后单击运行以执行该宏,立即为当前 Excel 窗口启用“始终保持在最前”功能。请参见下图:

显示如何运行代码的截图

4. 宏运行完成后,您的 Excel 窗口将始终保持在所有已打开应用程序的最上方,让您在多程序间参考或输入数据时更加便捷,操作不再因窗口被遮挡而中断。

此设置将持续生效,直至您手动取消。最小化后再恢复窗口时,“始终保持在最前”状态通常会被保留;但若关闭并重新打开 Excel,则需再次运行宏。

注意:如需将 Excel 窗口恢复为普通状态(即不再始终保持在最前),请重复激活操作:按 F5 打开对话框,选择 SetXNormal 宏,然后单击运行。此后,Excel 窗口将恢复正常行为。

故障排除提示:如果运行宏时出现错误,请仔细检查宏安全设置,并确保所有 VBA 代码均已正确粘贴。某些企业环境可能会限制特定的窗口管理操作;若此方法未按预期生效,请咨询 IT 部门。此外,请确保以标准用户身份运行 Excel——通常无需管理员权限即可顺利完成操作。

如果您不想安装第三方软件,且熟悉 Excel 的内置脚本功能,这一 VBA 解决方案将是您的理想之选。但若您经常需要从多个应用程序中固定窗口,或许更倾向于选择专为管理窗口位置而设计的工具。


最佳办公效率工具

🤖KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项   |  删除空白行   |  合并列或单元格且不丢失数据   |  不使用公式的四舍五入……
高级 LOOKUP多条件 VLookup  |  多值 VLookup  |   跨多工作表 VLookup   |   模糊查找……
高级下拉列表快速创建下拉列表   |  级联下拉列表   |  多选下拉列表……
列管理器添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列……
特色功能网格聚焦   |  设计视图   |增强编辑栏   | 工作簿和表管理器   |  资源库(自动文本)|  日期提取   |  汇总工作表  |  加密/解密单元格   | 按列表发送邮件   |  超级筛选   |   特殊筛选(筛选粗体单元格/斜体/删除线……) ......
精选 15 工具集12 文本工具添加文本删除特定字符,……)|   50+ 图表 类型甘特图,……)|   40+ 实用公式基于生日计算年龄,……)|   19 插入工具插入二维码从路径插入图片,……)|   12 转换工具小写金额转大写汇率转换,……)|   7 合并和拆分工具高级合并行分割单元格,……)|……更多
在您的首选语言中使用 Kutools – 支持英语、西班牙语、德语、法语、中文及 40+ 种其他语言!

使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……


Office Tab 为 Office 带来标签式界面,让您的工作更轻松

  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!

所有 Kutools 插件,一个安装程序

Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。

ExcelWordOutlookTabsPowerPoint
  • 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
  • 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
  • 协同效果更佳— 在多个 Office 应用中实现高效协同
  • 30 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱