百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

VBA找出文件夹下所有的Excel文件

liuian 2025-02-06 15:41 48 浏览

在VBA中,遍历指定目录下的Excel文件通常涉及使用FileSystemObject。以下是一个基本的例子,说明如何遍历一个目录并列出所有的Excel文件(假设Excel文件的扩展名为.xlsx或.xls):

首先,你需要确保你的VBA项目引用了Microsoft Scripting Runtime。你可以通过以下步骤添加这个引用:

  1. 在VBA编辑器中,选择工具 > 引用。
  2. 在弹出的对话框中,滚动到Microsoft Scripting Runtime并勾选它。
  3. 点击确定。

代码

参考代码如下,可以实现递归遍历子文件夹:

Sub ListFilesInFolderRecursively()  
    Dim MyFolder As String  
    Dim wb As Workbook  
    Dim ws As Worksheet  
    Dim r As Range  
    Dim rowNum As Long  
      
    ' 设置要遍历的文件夹路径  
    MyFolder = "C:\YourFolderPath\"  
      
    ' 创建一个新的工作簿来记录结果  
    Set wb = Workbooks.Add  
    Set ws = wb.Sheets(1)  
    rowNum = 1  
      
    ' 调用递归函数来遍历文件夹  
    Call ListFilesInFolderRec(MyFolder, ws, rowNum)  
      
    ' 自动调整列宽以适应内容  
    ws.Columns(1).AutoFit  
      
    ' 清理对象  
    Set r = Nothing  
    Set ws = Nothing  
    Set wb = Nothing  
End Sub  
  
Sub ListFilesInFolderRec(FolderPath As String, ws As Worksheet, ByRef rowNum As Long)  
    Dim FSO As Object  
    Dim Folder As Object  
    Dim SubFolder As Object  
    Dim File As Object  
      
    ' 创建FileSystemObject对象  
    Set FSO = CreateObject("Scripting.FileSystemObject")  
      
    ' 获取文件夹对象  
    If FSO.FolderExists(FolderPath) Then  
        Set Folder = FSO.GetFolder(FolderPath)  
          
        ' 遍历文件夹中的所有文件  
        For Each File In Folder.Files  
            ' 检查文件是否是Excel文件  
            If LCase(FSO.GetExtensionName(File.Name)) = "xlsx" Or LCase(FSO.GetExtensionName(File.Name)) = "xls" Then  
                ' 在工作簿中记录文件名  
                ws.Cells(rowNum, 1).Value = File.Path  
                rowNum = rowNum + 1  
            End If  
        Next File  
          
        ' 遍历子文件夹  
        For Each SubFolder In Folder.SubFolders  
            ' 递归调用此函数来处理子文件夹  
            Call ListFilesInFolderRec(SubFolder.Path, ws, rowNum)  
        Next SubFolder  
    Else  
        MsgBox "The folder path does not exist."  
    End If  
      
    ' 清理对象  
    Set File = Nothing  
    Set SubFolder = Nothing  
    Set Folder = Nothing  
    Set FSO = Nothing  
End Sub


ListFilesInFolderRecursively 是主函数,它创建一个新的工作簿来记录文件路径。然后它调用 ListFilesInFolderRec 函数来递归地遍历指定目录及其所有子目录。ListFilesInFolderRec 函数检查每个文件是否是Excel文件,如果是,则将其路径记录到工作簿中。同时,它还遍历每个子文件夹,并递归调用自身来处理这些子文件夹。

注意,在代码中我使用了 LCase 函数来确保扩展名比较时不受大小写影响。同时,我也记录了文件的完整路径(File.Path),而不仅仅是文件名,这样你可以清楚地知道文件位于哪个文件夹中。如果你只需要文件名,你可以将 ws.Cells(rowNum, 1).Value = File.Path 更改为 ws.Cells(rowNum, 1).Value = File.Name

相关推荐

windows7ultimate下载(windows7 ultimate)

要下载澪Ultimate启动器,您可以按照以下步骤进行操作:1.打开您的网络浏览器,访问澪Ultimate启动器的官方网站或相关下载页面。2.在网站上找到适用于您的操作系统的下载选项。3.点击下...

苹果首次激活时间查询(iphone激活查询官网入口)

登陆苹果官网输入手机的序列号,查看手机的保修日期就可以了,一般保修到期的前一年就是手机的开机激活时间。查看第一次开机激活时间操作方法:1、首先打开设置2、点击通用3、点击关于本机...

u盘启动哪个好用(u盘启动盘哪个最好)

大白菜超级U盘启动盘制作工具,打造你真正的万能U盘!安装后你在U盘里是看到什么文件的,是隐藏分区,这样你放存别的东西时也不会搞乱了。大白菜超级U盘启动盘制作工具,是纯傻瓜式制作U盘启动盘功能的超级万能...

腾达路由器高级设置在哪里(腾达路由器怎么设置安全性高)

方法/步骤分步阅读1/11打开新购的腾达路由器,查看路由器背面的默认IP和管理员密码。小提示:密码为:admin默认管理IP:192.168.0.12/11接好腾达路由器和插上电源通电,等待2-3分钟...

dell新版bios设置恢复(戴尔bios恢复设置)

1)、开机后,在看到DELL图标时,按3下F2,进入BIOS。(灰色界面)2)、分别按键盘上的CapsLock,ScrollLock,以及NumLock三个键,使键盘上相应的三个指示灯点亮。3)、...

重装win7系统需要多少钱(重装一个win7系统要多少钱)

1、win7系统装完后需要占用C盘空间10-15GB,如果把常用软件也安装到C盘,大小超过20+。  2、在分区的时候根据硬盘大小,如果硬盘相对较小,一般建议设置50G,最低不能低于30G。因...

性价比笔记本推荐2025(性价比高的笔记本电脑2021年)

2023年联想推出的一款性价比高的笔记本电脑是联想Yoga7Carbon。它是一款轻薄便携的2合1笔记本,采用了高强度碳纤维材质打造,具有出色的抗撞击性和高端外观。配备了英特尔第11代酷睿处理器、...

华为和联想平板哪个好(华为平板和联想平板对比)

联想,是典型的组装厂,CPU不能造,屏幕不能造.而华为,拥有核心技术,大量有价值专利的,比如说:华为mediapad平板电脑小巧轻薄,7英寸便携机身让她成为出行必备,新推出的粉红炫彩版更集美貌与智慧于...

电脑桌面壁纸原始经典(电脑桌面壁纸原图下载)
  • 电脑桌面壁纸原始经典(电脑桌面壁纸原图下载)
  • 电脑桌面壁纸原始经典(电脑桌面壁纸原图下载)
  • 电脑桌面壁纸原始经典(电脑桌面壁纸原图下载)
  • 电脑桌面壁纸原始经典(电脑桌面壁纸原图下载)
win10休眠文件有必要删除吗(win10休眠文件有必要删除吗)

休眠文件的功能是保存当前内存中的所有数据至硬盘后关闭电源,电脑再次开启时还能够很快恢复到关机前的状态。通过保留存储,将留出一些磁盘空间以供更新、应用程序、临时文件和系统缓存使用。目标是通过确保关键的操...

win10内核版本升级(win10 内核版本)

手机系统内核是Linux,linux内核是靠升级系统版本来升级内核的。升级方法:1、使用手机自带的系统更新功能:在安卓手机的设置--关于手机中,可以看到当前安卓手机的系统版本,另外这里也有自动检测更新...

电脑说windows未能启动(开机说windows未能启动)

关于这个问题,电脑Windows未能启动可能有多种原因,以下是一些常见的原因和解决方法:1.硬件故障:可能是硬盘故障,内存不足或显卡故障等。需要检查硬件情况并修复或更换。2.操作系统损坏:可能是系...

路由器和猫图片(路由器和猫图片怎么连接)

因为光猫是光电转换设备,没有光猫不能把光信号转换成网络宽带信号,而路由器是将宽带信号转换成更容易连接使用的网络。两个配合使用还可以增加无线网络,有限网络路数。相当于扩大了宽带的使用范围,宽带上网比较麻...

安装惠普打印机驱动程序(怎么免费安装惠普打印机驱动程序)

安装具体操作步骤如下:一、下载驱动程序进行安装。(安装驱动程序前,不要连接打印机USB连接线。)二、在“许可协议”窗口中,选择“我接受许可协议的条款”选项,然后点击“下一步”按钮。三、驱动程序开始...

excel打不开了不显示内容(excel完全打不开)
  • excel打不开了不显示内容(excel完全打不开)
  • excel打不开了不显示内容(excel完全打不开)
  • excel打不开了不显示内容(excel完全打不开)
  • excel打不开了不显示内容(excel完全打不开)