求统计指定文件夹非子项数量并在单元格减3的代码方案
实现文件夹统计并写入Excel单元格的解决方案
VBA 实现(适用于Excel)
直接用Excel内置VBA编写宏,无需额外工具:
Sub CountFilesAndFolders() Dim folderPath As String Dim fso As Object Dim targetFolder As Object Dim itemCount As Integer Dim resultCell As Range ' 替换为你的目标文件夹路径 folderPath = "C:\Your\Target\Folder" Set fso = CreateObject("Scripting.FileSystemObject") If Not fso.FolderExists(folderPath) Then MsgBox "文件夹不存在!", vbExclamation Exit Sub End If Set targetFolder = fso.GetFolder(folderPath) itemCount = targetFolder.Items.Count - 3 ' 直接计算减3后的结果 ' 替换为你要写入的工作表和单元格 Set resultCell = ThisWorkbook.Sheets("Sheet1").Range("A1") resultCell.Value = itemCount Set targetFolder = Nothing Set fso = Nothing MsgBox "结果已写入指定单元格", vbInformation End Sub
使用步骤:
- 打开Excel,按
Alt+F11打开VBA编辑器 - 右键左侧工作簿 → 插入 → 模块,粘贴代码
- 修改
folderPath为目标文件夹路径,修改resultCell为目标单元格 - 按
F5运行,或回到Excel添加表单按钮绑定该宏
Python 实现(灵活通用)
如果习惯用Python,可借助os和openpyxl库完成:
import os from openpyxl import Workbook # 目标文件夹路径 folder_path = "C:\\Your\\Target\\Folder" if not os.path.isdir(folder_path): print("指定文件夹不存在") else: # 统计当前目录下所有直接项(文件+子文件夹)的数量 total_items = len(os.listdir(folder_path)) final_result = total_items - 3 # 写入Excel wb = Workbook() ws = wb.active ws["A1"] = final_result wb.save("统计结果.xlsx") print(f"结果已保存到统计结果.xlsx,数值为:{final_result}")
使用步骤:
- 先安装依赖:
pip install openpyxl - 修改
folder_path为目标路径 - 运行脚本,生成的Excel文件会在当前目录下
内容的提问来源于stack exchange,提问作者Stephen Zimmermann
相关产品推荐
相关产品推荐

