如果你需要批量处理文件夹中的文件,那么获取文件名就是必需的一步。Excel可以用vba代码获取文件夹中的文件名,省去手工一个一个复制粘贴的繁琐操作。下面以获取文件夹中所有文件名为例,介绍具体方法。

Step1:新建工作簿

打开Excel,新建一个工作簿,按下Alt+F11,打开VBA编辑器。

Step2:编写VBA代码

在项目窗格中选择新建一个模块,输入以下VBA代码:

 Sub GetFilesName()
     Dim ObjFso As Object
     Dim ObjFolder As Object
     Dim ObjFile As Object
     Dim i As Integer
     
     Set ObjFso = CreateObject(\"Scripting.FileSystemObject\")
     Set ObjFolder = ObjFso.GetFolder(\"文件夹路径\")
     
     For Each ObjFile In ObjFolder.Files
         Cells(i + 1, 1) = ObjFile.Name
         i = i + 1
     Next
     Set ObjFso = Nothing
     Set ObjFolder = Nothing
     Set ObjFile = Nothing
 End Sub
 

Step3:修改文件夹路径

将代码中的“文件夹路径”替换成实际文件夹的路径。例如:“D\\pictures”。

Step4:运行VBA代码

返回Excel窗口,按下F5运行VBA代码。代码将会自动执行,将文件夹中所有文件名写入Excel工作表中。

Step5:优化操作

为了避免每次运行VBA代码,都需要手动修改文件夹路径,我们可以通过Excel宏编写功能,使得代码在需要获取文件夹中文件名的时候自动运行。具体步骤如下:

excel怎么获取文件夹中的文件名  第1张

  1. 复制上述VBA代码。
  2. 按下Alt+F8,打开“宏”对话框,输入宏名,点击“创建”。
  3. 在“宏编辑器”窗口粘贴VBA代码,去掉“Sub”和“End Sub”,留下中间内容。
  4. 打开Excel工作簿,按下Alt+F11,打开VBA编辑器,选择“这台电脑”的项目,并右键选择“插入-模块”,将代码粘贴进去。
  5. 将文件夹路径改成动态变量:
  6. Sub Auto_Open()
        Dim MyFolderPath As String
        MyFolderPath = \"D\\pictures\"
        Call GetFilesName(MyFolderPath)
    End Sub
    Sub GetFilesName(MyFolderPath As String)
        Dim ObjFso As Object
        Dim ObjFolder As Object
        Dim ObjFile As Object
        Dim i As Integer
        
        Set ObjFso = CreateObject(\"Scripting.FileSystemObject\")
        Set ObjFolder = ObjFso.GetFolder(MyFolderPath)
        
        For Each ObjFile In ObjFolder.Files
            Cells(i + 1, 1) = ObjFile.Name
            i = i + 1
        Next
        Set ObjFso = Nothing
        Set ObjFolder = Nothing
        Set ObjFile = Nothing
    End Sub
    

总结

通过上述方法,我们可以用Excel轻松地获取文件夹中的文件名。VBA代码和宏可以帮助我们实现自动化处理,大大提高工作效率。这个技巧不仅适用于文件名的获取,也可以应用到其他需要批量处理的操作上。