You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel:Worksheet_SelectionChange事件中拆分窗格关闭极慢求助

问题:Excel VBA 切换曲目时关闭分窗运行极慢

背景

我做了一个音乐曲目库Excel工作簿,核心功能包括:

  • 歌单筛选
  • 点击曲目打开对应YouTube视频
  • 从"歌单"工作表快速访问内置的50个纯文本和弦表工作表

为了切换曲目时能同步查看和弦表,我用新建窗口垂直分组的方式布局,代码写在Worksheet_SelectionChange事件里,实现方向键切换歌单行时自动加载对应和弦表。代码里加了关闭第二个窗口的逻辑,用On Error Resume Next处理窗口未打开的异常,代码功能正常但不够美观。

工作簿仅600KB,Excel完全能轻松应对,但实际使用时运行极慢——i7笔记本要等近10秒,奇怪的是调试模式下代码执行速度非常快。

疑似问题点

排查后发现,慢的根源在Worksheet_SelectionChange事件里关闭和弦表所在第二个窗格的代码部分,而且这个问题在其他小型工作簿里也会出现。

相关代码片段(问题代码已标记)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' 其他逻辑代码...
    
    ' 以下为疑似问题代码
    On Error Resume Next
    Windows(2).Close
    On Error GoTo 0
    
    ' 重新打开分窗并加载对应和弦表的代码...
End Sub

附相关截图

  • Excel分窗运行界面:歌单工作表与和弦表工作表垂直分屏显示
  • MS Office 365版本信息:确认使用最新Office 365订阅版

求各位帮忙分析下为什么关闭窗口的操作在事件里会这么慢,有没有优化方案?

内容的提问来源于stack exchange,提问作者Spreader

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 16:12:14