首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用excel VBA顺序读取文件夹中的文件名

要使用 Excel VBA 顺序读取指定文件夹中的文件名,可以按照以下步骤操作。下面的示例代码将列出指定文件夹中的所有文件名,并将它们输出到工作表的某一列中。

步骤 1:打开 VBA 编辑器

  1. 打开你的 Excel 文件。
  2. 按下 ALT + F11 键,打开 VBA 编辑器。
  3. 在 VBA 编辑器中,插入一个新的模块:
    • 点击菜单栏的 插入 > 模块

步骤 2:粘贴以下 VBA 代码

在新模块中粘贴以下代码:

代码语言:javascript
复制
Sub ListFilesInFolder()
    Dim folderPath As String
    Dim fileName As String
    Dim ws As Worksheet
    Dim i As Long
    
    ' 设置要读取的文件夹路径
    folderPath = "C:\你的文件夹路径\" ' 请将此处替换为你的文件夹路径,并确保以反斜杠结尾
    
    ' 检查文件夹路径是否以反斜杠结尾
    If Right(folderPath, 1) <> "\" Then
        folderPath = folderPath & "\"
    End If
    
    ' 设置要将文件名列出的工作表,例如活动工作表
    Set ws = ThisWorkbook.ActiveSheet
    
    ' 清除之前的内容(可选)
    ws.Cells.Clear
    
    ' 获取第一个文件名
    fileName = Dir(folderPath & "*.*")
    
    ' 初始化行号
    i = 1
    
    ' 循环读取所有文件
    Do While fileName <> ""
        ' 将文件名写入工作表的A列
        ws.Cells(i, 1).Value = fileName
        ' 获取下一个文件名
        fileName = Dir
        ' 增加行号
        i = i + 1
    Loop
    
    MsgBox "文件列表已成功导出到工作表!", vbInformation
End Sub

步骤 3:修改代码中的文件夹路径

在代码中找到以下行:

代码语言:javascript
复制
folderPath = "C:\你的文件夹路径\" ' 请将此处替换为你的文件夹路径,并确保以反斜杠结尾

"C:\你的文件夹路径\" 替换为你实际想要读取的文件夹路径。例如:

代码语言:javascript
复制
folderPath = "C:\Users\YourName\Documents\MyFolder\"

注意:确保路径以反斜杠 \ 结尾。

步骤 4:运行宏

  1. 关闭 VBA 编辑器,返回 Excel。
  2. 按下 ALT + F8 键,打开宏对话框。
  3. 选择 ListFilesInFolder 宏,然后点击 运行

结果

运行宏后,指定文件夹中的所有文件名将会按顺序列出在当前活动工作表的 A 列中。如果需要将文件名列到其他列,可以修改代码中的 Cells(i, 1) 中的列号。例如,Cells(i, 2) 将文件名列到 B 列。

扩展功能

如果你希望递归读取子文件夹中的文件,可以使用以下增强版代码:

代码语言:javascript
复制
Sub ListFilesRecursive(folderPath As String, Optional ws As Worksheet)
    Dim fso As Object
    Dim folder As Object
    Dim subFolder As Object
    Dim file As Object
    Dim i As Long
    
    If ws Is Nothing Then Set ws = ThisWorkbook.ActiveSheet
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(folderPath)
    
    i = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1
    
    For Each file In folder.Files
        ws.Cells(i, 1).Value = file.Path
        i = i + 1
    Next file
    
    For Each subFolder In folder.SubFolders
        ListFilesRecursive subFolder.Path, ws
    Next subFolder
End Sub

Sub RunListFilesRecursive()
    Dim rootFolder As String
    rootFolder = "C:\你的文件夹路径\" ' 替换为你的根文件夹路径
    ListFilesRecursive rootFolder
    MsgBox "所有文件和子文件夹中的文件已列出!", vbInformation
End Sub

使用方法

  1. 将上述增强版代码粘贴到同一个模块中。
  2. 运行 RunListFilesRecursive 宏。
  3. 所有文件及其子文件夹中的文件路径将列出在 A 列中。

这样,你就可以更全面地获取指定文件夹及其子文件夹中的所有文件名了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python读取excel单元格内容_python如何读取文件夹下的所有文件

使用open()方法读取: print('----使用 python自带的open() 读取文件-----') path = r'example/ex2.txt' frame = open(path)...print(frame.readlines()) 此时,执行结果报错如下: 我猜测open() 方法的默认编码不支持中文读取,假如 我把TXT 文件中的汉语删除,再次执行: success!...(xlsx, 'Sheet1')) Excel 的表格内容如下: 此时报错: 注意:读取 后缀名为 ‘.xlsx’ 的Excel文件,需要使用附加包 ‘xlrd’ (读取 .xls)和 ‘openpyxl...3.使用 pandas读取的简单方法 经过上一步的麻烦设置,我们不在理睬这2个包,开始尽情的使用python操作Excel表格。 直接使用 read_excel() 读取表格。...(path) # 直接使用 read_excel() 方法读取 frame 附录 公众号原文链接 知乎原文链接 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

3K30
  • Python读取文件夹中的所有Excel文件名

    【知识点一】 Python os.walk() 方法 概述 os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。...root 所指的是当前正在遍历的这个文件夹的本身的地址 dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录) files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录...如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。 onerror -- 可选,需要一个callable 对象,当 walk 需要异常时,会调用。...返回值 返回指定路径下的文件和文件夹列表。...os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。它不包括 '.' 和'..' 即使它在文件夹中。

    6.8K10

    VBA: 多份Excel文件的批量顺序打印(3)

    文章背景: 上一篇文章(参见文末的参考资料[1])提到,可以通过VBA编程,选中需要打印的多份Excel文件,进行批量打印。...最近发现,有一台电脑更换主机后,通过宏命令打印时,仍然出现了出纸乱序的问题。 打印顺序乱的原因可能是,文件对话框中选择的文件列表的顺序与实际打开文件的顺序不一致。...在代码中,我们使用了.SelectedItems属性来获取用户选择的文件列表,然后使用循环遍历这个列表。...然而,在某些情况下,文件对话框可能会以不同的顺序显示文件列表,导致实际打开文件的顺序与用户希望的顺序不一致。...参考资料: [1] VBA: 多份Excel文件的批量顺序打印 [2] VBA: 多份文件的批量顺序打印(2) [3] VBA: 快速排序算法:从原理到实现 [4] 讯飞星火大语言模型

    40310

    一个模块中的多个宏如何按顺序自动运行(Excel VBA)

    将一个略微复杂的工作内容编入VBA,我们可能需要许多宏拼在一起运行才能实现。那么如何按照自己想要的顺序依次运行这些宏,实现我们需要的结果? 一个办法是编写一个新的宏,分别按顺序call你需要运行的宏。...call的方法有几种,比较简单的是以下两种, call 宏1 call 宏2 或者省略call,直接 宏1 宏2 这样,你需要调用的宏就会按照顺序执行。...但是,当你调用的宏非常多的时候,可能有几十个,以上还是有点麻烦。...最后写个循环汇总以上所有宏 Sub huizong() Dim q For q = 1 To 15 Application.Run "hong" & q Next q End Sub 运行最后这个汇总宏,你的前...15个宏就会依次按顺序运行。

    7.4K30

    EXCEL中简单使用VBA上

    在Excel内部打开VBA 以及在运行之前需要开启一下家开发人员的安全性 打开的页面可能是这样,不要慌 可以在这里选择打开窗口 如果还是不一样,可以这这里打开资源的管理器 F4按键会按照当前你打开的窗口...这个图截取的更加的清晰 也可以把当前的代码打印出来 打印的效果图 首先我们要使用的画布,所有的操作都是在这个里面进行的 首先可以先放一个控件 对于一个控件,可以右键看到一些使用的菜单 这里的属性和函数内部的参数的意思有重叠的意思...有两种排列模式,按照自己的喜好来选择使用 可以在后面的栏目内部打开还是开启此功能 这里是又绘制了一个窗口 未来后文的使用方便,可以重新定义一个文件 对于每一个将来要使用的事件,都可以去双击控件进入内部去编写触发用的代码...Label2_Click() End Sub Private Sub UserForm_Click() End Sub https://docs.microsoft.com/en-us/office/vba.../language/reference/user-interface-help/msgbox-constants 在微软的文档内可以查到对应使用的函数的一些参数以及用法 对于一些控件,我们可以成组的来控制

    1.8K10

    VBA: 多份Excel文件的批量顺序打印

    文章背景:测试仪器的数据有时会以Excel文件形式保存,工作量大时会选中多份文件进行批量打印。当office升级后,批量打印时可能会出现顺序错乱,这时需要手动排序,费事费力。...现在以批量打印Excel文件(.xlsx格式)为例,采用VBA编程,进行任务的实现。...在批量打印文件的按钮中指定如下的宏命令代码: Sub printFiles() '批量打印Excel文件 Application.ScreenUpdating = False...因此,运行上述代码后,每打印一次,就会弹出对话框,选择 PDF 文档保存的位置和文件名。 (2)实际工作当中,如果连接了实体打印机,运行上述代码后会按顺序依次打印出你所选择的各个文件。...参考资料: [1] 利用Excel VBA实现批量打印的思路(https://zhuanlan.zhihu.com/p/55800879) [2] 你还在挨个打印word、excel文件吗(https:

    2.7K40

    python读取excel并写入excel_python如何读取文件夹下的所有文件

    date_cell=xldate_as_tuple(worksheet.cell_value(row_index,col_index),workbook.datemode) #使用元组的索引来引用元组的前三个元素并将它们作为参数传递给.../usr/bin/env python3import pandas as pd#读取工作簿和工作簿中的工作表data_frame=pd.read_excel('E:\\研究生学习\\python数据\\...\\python数据\\实验数据\\Excel文件实验数据\\sale_january_2017_in_pandas.xlsx')#使用to_excel将之前读取的工作簿中工作表的数据写入到新建的工作簿的工作表中.../usr/bin/env python3import pandas as pd#读取工作簿和工作簿中的工作表writer_1=pd.ExcelFile('E:\\研究生学习\\python数据\\实验数据...('E:\\研究生学习\\python数据\\实验数据\\Excel文件实验数据\\sale_january_2017_in_pandas.xlsx')#使用to_excel将之前读取的工作簿中工作表的数据写入到新建的工作簿的工作表中

    2.7K30

    Excel中的VBA编程「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 目的:有时我们需要对Excel文件中大量的数据进行整理,此时如果使用手动整理会非常繁琐而且容易出错。...而如果采用VBA语言,在Excel中根据需求编写一段简单的代码就能自动完成大量数据的整理工作。 1、以Excel 2007为例,如果要进行VBA编程,需要启用“开发工具” 选项。...并在该模块中添加一个名为Test的函数,如下所示: 在Sub 和End Sub间添加函数体,并保存。注意一定要将Excel文件保存为启用宏的工作薄(*.xlsm)格式。...Set MySheet = Sheet1 MySheet.Cells(2, 1).Value = 10 '将Sheet1中的A2单元内容设置为10 5、定义并使用一个整型变量和数组 Dim Num As...10、实现单元格中内容换行的字符 Chr(10) 11、检测文件是否存在 Dir(完整路径的文件名) '文件存在则返回文件名,不存在则返回为空 12、从B列的最后一个单元格往上查找,并返回遇到的第一个非空单元格所在的行号

    5.9K20

    python怎么读取excel文件_python如何读取文件夹下的所有文件

    大家好,又见面了,我是你们的朋友全栈君。 python读取excel文件如何进行 python编程语言拥有着比较强大的excel读写能力,我们只需要安装xlrd,xlwt这两个库就可以了。...那么python读取excel文件如何进行,今天就为大家分享下python读取excel文件的具体操作方法,快来了解下吧!...(1)要操作excel,首先得打开excel,使用open_workbook(‘路径’) (2)要获取行与列,使用nrows(行),ncols(列) (3)获取具体的值,使用cell(row,col)...里写入值,就要使用write属性,重点说明写入是用到xlwt这个支援库,思路是先新建excel,然后新建页签B,然后将一组数据写入到B,最后保存为excel.xls,这里建议保存为2003的格式,大部分电脑都能打开...关于python读取excel文件如何进行,就和大家分享到这里了,学习是永无止境的,学习一项技能更是受益终身,所以,只要肯努力学,什么时候开始都不晚。

    3.2K20

    使用Pandas读取加密的Excel文件

    标签:Python 如果试图使用pandas读取使用密码加密的Excel文件,并收到以下消息: 这个消息表示试图在不提供密码的情况下读取使用密码加密的文件。...使用pip进行安装: pip install msoffcrypto-tool 将加密的Excel文件直接读取到Pandas msoffcrypto库有一个load_key()方法来为Excel文件准备密码...由于希望将加密的Excel文件直接读取到pandas中,因此保存到磁盘将效率低下。因此,可以将文件内容临时写入内存缓冲区(RAM)。为此,需要使用io库。...(‘123’) excel.decrypt(temp) 现在,这个临时文件是我们的目标Excel文件,密码被删除,可以继续使用正常的pd.excel()来读取它!...将代码放在一起 这是一个简短的脚本,用于将加密的Excel文件直接读取到pandas中。注意,在此过程中,既没有修改原始Excel文件,也没有在磁盘上创建不必要的文件。

    6.3K20

    Excel: 提取路径中的文件名

    文章背景:在日常工作中,有时需要从绝对路径中提取文件名。比如,已知某个文件的存储路径,想要获取最后的文件名称。下面介绍两种方法。...A2的公式中,SUBSTITUTE函数将字符串中的斜杆\替换成99个空格。...思路分析:针对文件路径,先用99个空格替换掉路径中的斜杆\;再从字符串右侧起,获取99个字符(新字符串),此时,新字符串内既有文件名,也有空格;最后,通过trim函数,移除首尾的空格,从而得到所需要的文件名...思路分析:针对文件路径,使用Split函数,基于斜杆/,将路径分割成各个小块,保存在一个数组内;然后通过Ubound函数,获取数组的最后一个索引号,从而将文件名提取出来。...参考资料: [1] 如何用excel提取路径中最后一个文件夹的名字(https://jingyan.baidu.com/article/a948d651aae9544a2ccd2e74.html) [2

    2.7K20
    领券