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

是否存在返回活动工作簿已打开窗口数量的VBA函数?

获取当前活动工作簿打开窗口数量的VBA方案

当然可以实现这个需求!Excel的VBA模型里已经提供了直接的属性来获取工作簿的窗口数量,下面给你详细的实现方法和示例:

核心原理

每个打开的工作簿(Workbook对象)都对应一个Windows集合,集合里的每个元素就是该工作簿的一个独立窗口实例(比如你通过「视图」→「新建窗口」创建的额外窗口)。我们只需要读取这个集合的Count属性,就能得到当前活动工作簿已打开的窗口数量。

自定义VBA函数实现

你可以直接用这个自定义函数来快速获取数值:

Function GetActiveWorkbookWindowCount() As Integer
    ' 先判断是否有活动工作簿,避免无工作簿打开时报错
    If ActiveWorkbook Is Nothing Then
        GetActiveWorkbookWindowCount = 0
        Exit Function
    End If
    
    ' 返回活动工作簿的窗口总数
    GetActiveWorkbookWindowCount = ActiveWorkbook.Windows.Count
End Function

如何使用这个函数

1. 在VBA过程中调用

比如你可以写一个测试过程,弹出窗口数量:

Sub CheckWindowCount()
    Dim totalWindows As Integer
    totalWindows = GetActiveWorkbookWindowCount()
    MsgBox "当前活动工作簿的打开窗口数量:" & totalWindows, vbInformation, "窗口统计"
End Sub

2. 在Excel单元格中直接调用

如果你想在工作表单元格里显示这个数值,直接输入公式:
=GetActiveWorkbookWindowCount()
(注意要先把函数保存到当前工作簿的模块里,否则单元格会提示找不到函数)

额外注意事项

  • 这个统计的是当前活动工作簿专属的窗口,不是Excel整个应用程序的所有窗口。如果需要统计Excel所有打开的窗口(包含不同工作簿),可以用Application.Windows.Count
  • 当你通过「新建窗口」功能为同一个工作簿创建多个窗口时,每个窗口都会被计入这个数量里

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:11:43