在日常使用excel处理多任务的时候,我们常常需要同时打开多个工作簿,不管是做批量数据处理还是自动化任务开发,很多场景下都需要统计当前打开的工作簿数量。很多用户不知道怎么快速得到这个数据,其实借助excel自带的vba中workbooks对象,就能轻松实现统计,准确率几乎100%。
什么是workbooks集合
workbooks是excel vba中的顶层集合对象,它会自动收纳当前excel进程中所有打开的工作簿,每一个打开的工作簿都是workbooks集合中的一个独立元素。我们要统计打开的工作簿数量,只需要读取这个集合自带的count属性就可以了,原理简单,实现起来也不复杂,哪怕是刚接触vba的新手也能快速操作。
具体操作步骤
首先打开任意一个excel工作簿,按下快捷键「alt+f11」调出vba开发编辑器;在编辑器左侧的工程窗口右键点击任意项目,选择「插入」-「模块」,新建一个空白代码模块;接下来在模块编辑区域输入如下代码:
sub countopenworkbooks()

msgbox "当前打开的工作簿数量为:" & workbooks.count
end sub
输入完成后按下「f5」运行代码,就会弹出提示框直接显示当前打开的工作簿数量。这个统计结果包含了隐藏工作簿、加载宏这类一般不会显示在任务栏的工作簿,结果非常全面准确。
拓展:在单元格直接显示统计结果
如果需要把统计结果放在excel工作表中,方便后续其他计算调用,可以修改代码把结果写入单元格,示例代码如下:
sub workbookcounttocell()

sheet1.range("a1").value = workbooks.count
end sub
运行后,第一个工作表的a1单元格就会存储统计结果。需要注意的是,使用这个方法需要启用excel宏权限,否则代码无法正常运行,该方法适配所有主流excel版本,操作门槛很低,即使是新手也能跟着步骤一步一步实现,满足日常统计工作簿数量的需求。

























