分享

用excel批量为某个文件夹里的所有文件改名

 空梦馆 2014-03-21
在日常生活中,我们经常需要整理相片以及一些扫描的相片文件,扫描仪器以及数码相机导出来的文件名称,往往是带着长长字符串的文件名。一个个的对每一个文件进行重命名的动作固然能解决问题。但是如果该文件夹里的文档数量相当庞大,--一一转换起来就显得太麻烦了。今天要帮助大家提高工作效率,又快又好地用EXCEL批量迅速修改某个文件夹里的文件名字,而且能随心所欲的运用EXCEL对文件名进行拖拽。

       创建模块

打开EXCEL2003,右击第一张工作表标签选择“查看代码”,之后右击工程VBA PROJECT->插入->模块,或 “工具”->”宏”->”VISUAL BASIC编辑器”


添加VBA代码
选择新插入的模块后,插入以下代码后保存退出。

Dim filePath As Variant            '定义filepath为变量
Dim obj As Object                  '定义obj为变量对象
Dim fld, ff, gg                    '定义fld,ff,gg为变量
Sub getpath()
    Range("A2:C1000").ClearContents               '清空A2:C1000列
    On Error Resume Next
    Dim shell As Variant
    Set shell = CreateObject("Shell.Application")
    Set filePath = shell.BrowseForFolder(&O0, "选择文件夹", &H1 + &H10, "")   '获取文件夹路径地址
    Set shell = Nothing
  If filePath Is Nothing Then                 '检测是否获得有效路径,如取消直接跳出程序
       Exit Sub
    Else
       gg = filePath.Items.Item.path
  End If
    Set obj = CreateObject("Scripting.FileSystemObject")   '定义变量
    Set fld = obj.getfolder(gg)                            '获取路径
     For Each ff In fld.Files                   '遍历文件夹里文件
        m = m + 1
        Cells(m + 1, 1) = ff.Name
        Cells(m + 1, 2) = "-------"
        Cells(m + 1, 3) = ff.Name
      Next
End Sub

Sub renamefile()
     On Error Resume Next
     If [a2] = "" Then MsgBox "请点击第一步": Exit Sub
      For Each ff In fld.Files                 '遍历文件夹里的所有文件
        m = m + 1
       ff.Name = Cells(m + 1, 3)              '将实际文件名改成目录中C列的对应文件名
      Next
      MsgBox "改名已完成,请检查", vbOKOnly
End Sub
创建两个按钮,
按钮一名称改为“第一步,获得原文件名”,按钮二名称改为”第二步,改成新文件名”
     将按钮一“第一步,获得原文件名”指向宏getpath
     按钮二”第二步,改成新文件名”指向宏renamefile
当然也可以直接点击“工具”->”宏->运行”宏”,然后选择相关的宏getpath和renamefile。
这样,整个批量修改文件名的EXCEL表格也就创建出来了。

具体操作
以后凡遇到需要批量修改文件名的时候,只需要打开该EXCEL文件,按一下第一步按钮一获取文件路径,EXCEL将会弹出一个对话框(“选择文件夹”)向导。

选择需要修改的文件夹之后,
EXCEL里就会罗列出该文件夹里的所有文件名于A列和对应的C列上。将所希望修改的文件名字对应填在C列即可。例如:在C2上填个1.扩展名,然后CTRL+拖拽到C101,这样就可以得到有序的1到100的文件名。 
确认之后按一下按钮,则成功将该文件夹里的文件名真正修改成了EXCEL里的C列的名。之后会出现一句提示:"改名已完成,请检查"
确认后就可以去检查目标文件夹里文件名的修改情况。
对需要大量处理文档以及相片的工作者相当实用。

注:由于该目录是需要通过宏功能起作用的,所以当打开工作簿时,EXCEL2007默认会禁用宏,得单击警告栏中的“选项”按钮,选中“启用此内容”单选项,确定后才能运行宏更新目录。EXCEL2003则在“工具”->“宏”->“安全性”中设置为“中”或“低”即可
做好的下载:http://pan.baidu.com/s/1gdwv4xP

附:

1、excel多个表格的内容如何合并?

第一列表格是"大埔镇",第二个列表格的内容是"大要村"等等.合并成"大埔镇大要村"
      =CONCATENATE(A1,B1,C1)

2、如何把一个文件夹里的所有文件名全部导到EXCEL表格里面去?

用一个简单的DOS命令就可以实现了

命令格式如下:

       dir [drive:][path] /b > [drive:][path]filename

应用实例1:
   把D盘singer目录下所有文件名导到temp.xls里,只要在cmd窗口里输入

             dir D:\Singer /b > d:\temp.xls& 
   这样就在你的当前目录生成一个temp.xls的EXCEL文件,打开来就看到D盘test目录下的所有文件名了,并且都带有扩展名的。当你需要导到是txt记事本,那就改成temp.txt

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多