分享

VBA批量修改多个文件夹中的jpg格式文件 | VBA实例教程

 gblhp 2015-02-16

除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www./cat4/388.html,VBA交流群273624828。

这节来看个VBA批量修改多个文件夹中jpg图片的例子。题目要求是这样的,现在有1000个文件夹,每个文件夹中有数量不等的随机命名的jpg格式文件,现在要将每个文件夹中的jpg文件命名为“文件夹1-A”、“文件夹2-B”这种格式。

先来想下思路,首先要能够遍历所有的文件夹,其次要遍历每个文件夹中的所有文件。在制作Excel超链接目录一文中我们介绍过怎样遍历所有的文件夹,这里因为只有一层文件所以遍历起来也很简单。重命名用的是name方法。下面看代码

Sub 批量改名()
Dim mypath, arr(), i, j, mydir$, myfile, n
Application.ScreenUpdating = False
mypath = ThisWorkbook.Path & "\"
ReDim arr(1 To 1000)
mydir = Dir(mypath, vbDirectory)
Do While mydir <> ""
If mydir <> "." And mydir <> ".." Then
If GetAttr(mypath & mydir) = vbDirectory Then
j = j + 1
arr(j) = mydir
End If
End If
mydir = Dir
Loop
ReDim Preserve arr(1 To j)
For i = 1 To j
myfile = Dir(mypath & arr(i) & "\*.jpg")
n = 0
Do While myfile <> ""
n = n + 1
On Error Resume Next
Name mypath & arr(i) & "\" & myfile As mypath & arr(i) & "\" & arr(i) & "-" & Split(Cells(1, n).Address, "$")(1) & ".jpg"
myfile = Dir
Loop
Next
Application.ScreenUpdating = True
End Sub

上述代码先利用Dir方法遍历出所有的文件夹,将其放到一个数组arr中,然后依次访问每个文件夹,对其中的jpg文件进行遍历。重命名用的是name方法,name 原文件 as 新文件,这里原文件和新文件用的都是完整路径。

这里还有一个细节,就是要按英文字母顺序依次命名,那怎样取这个英文字母呢,我这里利用了单元格的地址,我们知道地址都是$A$1,$B$1这里形式,里面的字母排序就可以被我们拿出来用,这里利用了Split函数将字母取出来。

本节示例文件下载:http://pan.baidu.com/s/1ntE6r8H

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多