| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
雷速体育发帖软件开发QQ118000023C语言培训|一对一辅导|零基础学编程LightningChart 快速先进的.Net图表控件
共有 729 人关注过本帖
标题:请教高手用vba实现根据文件名将文件分类放入新建的文件夹中
只看楼主 收藏
jackh
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2017-11-9
结帖率:60%
  已结贴   问题点数:10  回复次数:6   
请教高手用vba实现根据文件名将文件分类放入新建的文件夹中


将pdf根据文件名里的编码新建一个文件夹,并将具有相同编码的pdf文件放入相同的文件夹中

[此贴子已经被作者于2017-12-24 23:01编辑过]

附件: 您没有浏览附件的权限,请 登录注册
2017-12-24 22:17
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:212
帖 子:4211
专家分:25802
注 册:2008-10-15
  得分:0 
VB6 ,可以使用 Filelist 取文件名,然后截中间的部分,再使用 NAME 命令移动文件。

VBA ? 可以使用 DIR 命令,循环取文件名,然后 处理 与上面相同....
可以使用FSO 对象,取目录下的文件名,然后 处理 ....

授人于鱼,不如授人于渔
早已停用QQ了
2017-12-25 08:45
suzhanpeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:45
专家分:168
注 册:2016-9-28
  得分:0 
遍历所有文件放入一数组,逐一从数组读取文件名,循环提取文件名,在提取第一个文件名时分割出所需字符串并存入一数组中,根据字符串建立文件夹,拷贝文件到文件夹下,后面循环提取的文件名的字符串与存入字符串的数组比较,如果存在则拷贝到相同字符的文件夹下,如果不存在则建立文件夹。
2017-12-25 08:56
wds1
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:21
帖 子:218
专家分:1193
注 册:2016-3-10
  得分:0 
前几天回复的一个是示例,稍微修改了一下,请参考
【仅对execl扩展名进行了保存,多个,你可以修改filename变量和保存变量】
 FileName = Dir(app.Path & "\*.xlsx")
 Do While FileName <> ""
  N_PATH = app1.Path '定义保存路径,可自己定义保存位置
  N_NAME = N_PATH & filename '定义保存文件路径及原文件名
  ActiveWorkbook.SaveAs N_NAME
  FileName = Dir
Loop
2017-12-25 10:17
jackh
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2017-11-9
  得分:0 
回复 2楼 风吹过b
新手,可不可以给个完整的代码参照学习,&#128591;&#128591;&#128591;
2017-12-25 12:29
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:212
帖 子:4211
专家分:25802
注 册:2008-10-15
  得分:10 
Dim s            '每个文件名
Dim p             '输入的路径
Dim fso
Dim getfso
Dim Filelist
Dim fileobj


p = InputBox("请输入文件路径", "路径", "e:\aa")

If Len(p) > 1 Then                '最少长度2
    If Mid(p, 2, 1) = ":" Then            '是否包含驱动器符号
        '全部符合,通过,不提示错误
    Else
        MsgBox "没有包含驱动器符号!", 16
        Wscript.Qui
    End If
Else
    MsgBox "未输入路径!", 16
    Wscript.Qui
End If

If Right(p, 1) <> "\" Then        '补最后的 \
    p = p & "\"
End If

Set fso = CreateObject("Scripting.FileSystemObject")
getfso = fso.FolderExists(p)        '判断目录是否存在

If Not getfso Then
    MsgBox "输入的路径无效!", 16
    Wscript.Qui
End If

Set Filelist = fso.GetFolder(p)        '读目录

For Each fileobj In Filelist.Files    '循环读取所有的文件
    s = fileobj.Name            '取文件名
    '后面自己完成:
    '使用 mid 取字符串
    '使用 fso.FolderExists(全路径) 判断目录是否存在
    '不存在使用 fso.CreateFolder 全路径 创建目录
    '使用 fso.MoveFile "要移动及改名的原文件路径","移动到某路径及自定义新文件名"
    '移动到某路径,这个路径,可以用前面的方法,放到第一个输入路径后,再提示 用户输入。输入后如果判断路径不存在,则创建。

msgbox s    '显示文件名
Next


授人于鱼,不如授人于渔
早已停用QQ了
2017-12-25 13:35
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:212
帖 子:4211
专家分:25802
注 册:2008-10-15
  得分:0 
第一次写 VBA 代码,
还是习惯用 VB6 去写,结果 一运行就报错。



授人于鱼,不如授人于渔
早已停用QQ了
2017-12-25 13:41







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.097839 second(s), 9 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved