批量提取文件夹名称到excel

由于提问者没有给出具体案例,所以我首先设定一个符合日常场景和习惯的情景:

如下图,在“D:原文件”文件夹下有若干个文件,文件格式不作限制;在某个Excel文件中,存在一个文件名称列表,包含了上述文件夹下一部分文件的名称。

对于提取文件夹内的文件,我们定义为将列表中的文件复制到另一个文件夹中。

批量提取文件夹名称到excel图1

问题解决思路:

由于是对文件进行批量提取,所以可以运用批处理的思想,具体工具可以选择bat批处理脚本,它有三个优势:

一、语法简单:如果只是对文件层面的复制粘贴剪切等操作的话,基本没有学习成本;
二、使用方便:可以在记事本中直接编写,在windows下直接运行;
三、从计算机底层运行,效率要高于普通应用软件。

Step 1:写出批处理命令

bat批处理复制文件的基本语法是:

copy 含完整路径的文件名 要复制到的文件夹路径

所以首先在excel中批量生成批处理命令,由于每条命令中不同的部分是文件名不同,其余部分全部相同,所以可以分段写好再文本合并。

在A列写“copy D:原文件”,注意copy后面有空格。在C列写“ D:提取出来的文件”,注意最前面有空格,在D列输入公式“=A2&B2&C2”将ABC三列文本合并。将以上三列向下填充至最后一行,批处理命令就生成到了D列。

批量提取文件夹名称到excel图2

最后不要忘记在D盘下记得新建一个文件夹,并命名为“提取出来的文件”。

Step 2:制作批处理文件并运行

在电脑中任意位置新建一个文本文档,将D列内容复制粘贴进去,保存关闭后将文件名改为“提取文件.bat”。

批量提取文件夹名称到excel图3

直接双击打开bat文件,它会自动运行,稍等两秒,打开“D:提取出来的文件”文件夹,可以看到,想要提取的文件已经被复制到这个文件夹中了。

批量提取文件夹名称到excel图4

总结:

本例中借助bat实现了文件的批处理,其中又借助excel的功能批量生成了命令语句,瞬间实现了想要的结果。所以,精准选择相应的软件或工具并综合运用,效率才能最大化。


「精进Excel」系头条签约作者,关注我,如果任意点开三篇文章,没有你想要的知识,算我耍流氓!

这问题比较模糊,没有具体说明提取文件里面的什么内容。

不过我写一个根据简单的框架,如果有能力的话,题主可根据VBA来修改。


1、在桌面新建一个文件夹,文件夹里新建几个Excel工作簿文件。

批量提取文件夹名称到excel图5

2、在一个新的xlsm工作簿中,写入要提取的文件名称。

批量提取文件夹名称到excel图6

该xlsm文件和数据源Excel文件放在同一文件夹内

批量提取文件夹名称到excel图7

3、VBA代码参考,放在vbe窗口同一个模块。

批量提取文件夹名称到excel图8

文字代码为,可复制粘贴:

Sub doloop() ‘遍历当前路径所有文件

Dim sFName As String ‘文件名称

Dim sPath As String ‘路径

‘//根据实际路径和文件类型而修改

sPath = ThisWorkbook.Path & “” ‘路径,不包含文件名称和文件类型

Application.ScreenUpdating = False

Application.DisplayAlerts = False

‘//假设已经知道文件的名称以及文件夹内文件的类型

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row

sFName = sPath & Cells(i, 1) & “.xlsx” ‘全路径:文件名称+文件类型

If FileExists(sFName) = True Then ‘如果文件存在

Cells(i, 2) = “存在” ‘则在B列标记存在,否则空白

Else

Cells(i, 2) = “”

End If

Next

Application.ScreenUpdating = True

Application.DisplayAlerts = True

End Sub

Private Function FileExists(fname) As Boolean ‘判断工作簿是否存在

‘ 如果工作簿存在,则返回True

Dim x As String

x = Dir(fname)

If x <> “” Then FileExists = True _

Else FileExists = False

End Function

结果为:

批量提取文件夹名称到excel图9


套路Excel

本文来自投稿,不代表天一生活立场,如若转载,请注明出处:http://tiyigo.com/it/27195.html

(0)
上一篇 2023-05-08 09:54
下一篇 2023-05-08 10:03

相关推荐