| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4302 人关注过本帖
标题:请教高手用vba实现根据文件名将文件分类放入新建的文件夹中
只看楼主 加入收藏
jackh
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2017-11-9
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:6 
请教高手用vba实现根据文件名将文件分类放入新建的文件夹中
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

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

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

搜索更多相关主题的帖子: vba 文件 文件名 新建 文件夹 
2017-12-24 22:17
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:0 
VB6 ,可以使用 Filelist 取文件名,然后截中间的部分,再使用 NAME 命令移动文件。

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

授人于鱼,不如授人于渔
早已停用QQ了
2017-12-25 08:45
suzhanpeng
Rank: 4
等 级:业余侠客
威 望:7
帖 子:72
专家分:248
注 册:2016-9-28
收藏
得分:0 
遍历所有文件放入一数组,逐一从数组读取文件名,循环提取文件名,在提取第一个文件名时分割出所需字符串并存入一数组中,根据字符串建立文件夹,拷贝文件到文件夹下,后面循环提取的文件名的字符串与存入字符串的数组比较,如果存在则拷贝到相同字符的文件夹下,如果不存在则建立文件夹。
2017-12-25 08:56
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册: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
等 级:新手上路
帖 子:26
专家分:0
注 册:2017-11-9
收藏
得分:0 
回复 2楼 风吹过b
新手,可不可以给个完整的代码参照学习,🙏🙏🙏
2017-12-25 12:29
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册: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
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:0 
第一次写 VBA 代码,
还是习惯用 VB6 去写,结果 一运行就报错。



授人于鱼,不如授人于渔
早已停用QQ了
2017-12-25 13:41
快速回复:请教高手用vba实现根据文件名将文件分类放入新建的文件夹中
数据加载中...
 
   



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

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