由于提问者没有给出具体案例,所以我首先设定一个符合日常场景和习惯的情景:
如下图,在“D:原文件”文件夹下有若干个文件,文件格式不作限制;在某个Excel文件中,存在一个文件名称列表,包含了上述文件夹下一部分文件的名称。
对于提取文件夹内的文件,我们定义为将列表中的文件复制到另一个文件夹中。
问题解决思路:
由于是对文件进行批量提取,所以可以运用批处理的思想,具体工具可以选择bat批处理脚本,它有三个优势:
一、语法简单:如果只是对文件层面的复制粘贴剪切等操作的话,基本没有学习成本;
二、使用方便:可以在记事本中直接编写,在windows下直接运行;
三、从计算机底层运行,效率要高于普通应用软件。
Step 1:写出批处理命令
bat批处理复制文件的基本语法是:
copy 含完整路径的文件名 要复制到的文件夹路径
所以首先在excel中批量生成批处理命令,由于每条命令中不同的部分是文件名不同,其余部分全部相同,所以可以分段写好再文本合并。
在A列写“copy D:原文件”,注意copy后面有空格。在C列写“ D:提取出来的文件”,注意最前面有空格,在D列输入公式“=A2&B2&C2”将ABC三列文本合并。将以上三列向下填充至最后一行,批处理命令就生成到了D列。
最后不要忘记在D盘下记得新建一个文件夹,并命名为“提取出来的文件”。
Step 2:制作批处理文件并运行
在电脑中任意位置新建一个文本文档,将D列内容复制粘贴进去,保存关闭后将文件名改为“提取文件.bat”。
直接双击打开bat文件,它会自动运行,稍等两秒,打开“D:提取出来的文件”文件夹,可以看到,想要提取的文件已经被复制到这个文件夹中了。
总结:
本例中借助bat实现了文件的批处理,其中又借助excel的功能批量生成了命令语句,瞬间实现了想要的结果。所以,精准选择相应的软件或工具并综合运用,效率才能最大化。
「精进Excel」系头条签约作者,关注我,如果任意点开三篇文章,没有你想要的知识,算我耍流氓!
这问题比较模糊,没有具体说明提取文件里面的什么内容。
不过我写一个根据简单的框架,如果有能力的话,题主可根据VBA来修改。
1、在桌面新建一个文件夹,文件夹里新建几个Excel工作簿文件。
2、在一个新的xlsm工作簿中,写入要提取的文件名称。
该xlsm文件和数据源Excel文件放在同一文件夹内
3、VBA代码参考,放在vbe窗口同一个模块。
文字代码为,可复制粘贴:
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
本文来自投稿,不代表天一生活立场,如若转载,请注明出处:http://tiyigo.com/it/27195.html