一、批量重命名文件
基础遍历重命名 使用`FileSystemObject`遍历文件夹中的文件,并根据规则重命名:
```vba
Sub BatchRenameFiles()
Dim FSO As Object
Dim folder As Object
Dim file As Object
Dim newName As String
Set FSO = CreateObject("Scripting.FileSystemObject")
Set folder = FSO.GetFolder("C:\YourFolder")
For Each file In folder.Files
' 在原文件名前添加前缀
newName = "Prefix_" & file.Name
file.Name = newName
Next file
End Sub
```
*说明:此代码为基础示例,需修改`C:\YourFolder`为实际路径。
添加日期或编号
在文件名中添加日期或编号:
```vba
Sub RenameWithDate()
Dim FSO As Object
Dim folder As Object
Dim file As Object
Dim currentDate As String
currentDate = Format(Now, "yyyy-mm-dd")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set folder = FSO.GetFolder("C:\YourFolder")
For Each file In folder.Files
newName = "Report_" & currentDate & "_" & file.Name
file.Name = newName
Next file
End Sub
```
*说明:适用于生成报表或日志文件。
二、按规则修改文件名
截取文件名部分
使用`Mid()`或`Right()`函数截取文件名:
```vba
Sub RenameWithPrefix()
Dim FSO As Object
Dim folder As Object
Dim file As Object
Dim newName As String
Set FSO = CreateObject("Scripting.FileSystemObject")
Set folder = FSO.GetFolder("C:\YourFolder")
For Each file In folder.Files
If file.Name Like "*.avi" Then
newName = "第" & Len(file.Name) - 6 & ".avi" ' 去除扩展名并添加序号
file.Name = newName
End If
Next file
End Sub
```
*说明:适用于批量处理特定格式文件(如视频文件)。
使用单元格值重命名
从Excel单元格获取新文件名:
```vba
Sub RenameWithCellValue()
Dim FSO As Object
Dim folder As Object
Dim file As Object
Dim newName As String
Set FSO = CreateObject("Scripting.FileSystemObject")
Set folder = FSO.GetFolder("C:\YourFolder")
For Each file In folder.Files
newName = sheet1.Range("C2").Value & "_" & file.Name ' 假设C2单元格存储新名称
file.Name = newName
Next file
End Sub
```
*说明:需先在Excel的C2单元格输入目标名称。
三、注意事项
错误处理:
重命名前建议备份文件,避免覆盖重要文件。可使用`On Error`语句处理异常:
```vba
Sub SafeRename()
Dim FSO As Object
Dim folder As Object
Dim file As Object
Dim newName As String
On Error GoTo ErrorHandler
Set FSO = CreateObject("Scripting.FileSystemObject")
Set folder = FSO.GetFolder("C:\YourFolder")
For Each file In folder.Files
newName = "NewName_" & file.Name
file.Name = newName
Next file
Exit Sub
ErrorHandler:
MsgBox "重命名失败:" & Err.Description
End Sub
```
工程名称修改:
若需修改整个VBA工程名称,需通过“工程属性”对话框操作(右键工程→属性→常规),与文件重命名无关。
通过以上方法,可灵活实现文件批量重命名需求。建议根据具体场景选择合适的方法,并注意数据备份。