作者:绿色风
分类:
时间:2022-08-17
浏览:94
楼主 kevinchengcw |
Q: 如何用vba代码将指定盘里的文本文件全部移动到指定文件夹? A: 代码如下:
- Sub test()
- Dim FSO As Object, WSH As Object, Txt As Object, Str$, Drv$, FileType$, Targ$
- Drv = "D:" '设定要处理的盘符
- FileType = "txt" '设定文件类型(扩展名)
- Targ = "bak" '设定目标文件夹
- Set FSO = CreateObject("Scripting.FilesystemObject") '创建FSO对象
- Set WSH = CreateObject("wscript.shell") '创建WSH对象
- WSH.Run Environ("comspec") & " /c dir " & Drv & "\*." & FileType & " /s/b>""" & Environ("tmp") & "\list.txt""", 0, 1 '利用wsh对象调用命令行取得指定盘内指定类型文件的列表并隐藏执行直到程序执行完成,列表文件放到系统临时目录里
- If Dir(Drv & "\" & Targ, vbDirectory) = "" Then MkDir Drv & "\" & Targ '判断是否存在目标文件夹,如不存在则创建
- Set Txt = FSO.opentextfile(Environ("tmp") & "\list.txt") '打开列表文件
- Do While Not Txt.atendofstream '循环读取文本内容(即对应类型文件的全路径)
- Str = Txt.readline '读取一行
- If Trim(Str) <> "" Then WSH.Run Environ("comspec") & " /c move /y """ & Str & """ " & Drv & "\" & Targ, 0, 1 '如果是有效数据则调用命令行执行文件移动命令(注意:同名文件会覆盖)
- Loop
- Txt.Close '关闭列表文件
- Kill Environ("tmp") & "\list.txt" '删除列表文件
- Set Txt = Nothing '清空创建的项目
- Set FSO = Nothing
- Set WSH = Nothing
- End Sub
|
2楼 水吉果果 |
哇塞,VBA太强大了 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一