Excel 请帮助,怎么VBA批量更改文件名

如题所述

附件 VBA 递归算法 批量提取 & 修改文件名
代码如下:
点击选择文件夹 按钮 选择文件夹, 在C 列输入新文件名后, 点击 重命名按钮 批量重命名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

Option Explicit
Private Fso As Object, Mypath As String

Sub 选择文件夹()
Dim Fo
Call 清除
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "请选择要批量重命名文件的文件夹"
.Show
If .SelectedItems.Count = 0 Then Exit Sub
Mypath = .SelectedItems(1) & "\"
End With
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fo = Fso.getfolder(Mypath)
Call 递归(Fo)
End Sub

Sub 获取文件名(Folder)
Dim Fi, filename As String, r As Integer
For Each Fi In Folder.Files
r = Range("A65536").End(xlUp).Row + 1
filename = Fi.Name
Cells(r, 1) = Folder.Path & "\"
Cells(r, 2) = Fso.getbasename(filename)
Cells(r, 4) = "." & Fso.GetExtensionName(filename)
r = r + 1
Next
End Sub

Sub 递归(Folder)
Dim Fi, Fo
Call 获取文件名(Folder)
If Folder.subFolders.Count > 0 Then
For Each Fo In Folder.subFolders
Call 递归(Fo)
Next
End If
End Sub

Sub 重命名()
Dim i As Integer, r As Integer, Rng As Range
r = Range("A65536").End(xlUp).Row
For Each Rng In Range("C2:C" & r)
If Rng = "" Then MsgBox "请将新文件名填写完整!", 64, "提示": Exit Sub
Next
For i = 2 To Range("A65536").End(xlUp).Row
Name Cells(i, 1) & Cells(i, 2) & Cells(i, 4) As Cells(i, 1) & Cells(i, 3) & Cells(i, 4)
Next
MsgBox "文件名修改完成!", 64, "提示"
Call 清除
End Sub

Sub 清除()
Dim r As Integer
r = Range("A65536").End(xlUp).Row
If r = 1 Then Exit Sub
Range("A2:D" & r).ClearContents
End Sub
温馨提示:内容为网友见解,仅供参考
无其他回答

Excel 请帮助,怎么VBA批量更改文件名
附件 VBA 递归算法 批量提取 & 修改文件名 代码如下:点击选择文件夹 按钮 选择文件夹, 在C 列输入新文件名后, 点击 重命名按钮 批量重命名 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 ...

使用Excel对文件名重命名(批量)
首先,我们介绍第一种方法,即使用VBA(Visual Basic for Applications)编写简单的宏。具体步骤如下:选择包含文件名的目录,创建一个新文件名列表。宏会自动执行重命名操作。此方法中还内置了一个获取PDF总页码的函数,需要提前安装并引用Acrobat库。如果新文件名存在重复或非法字符,程序会给出提示。此功...

Excel 请帮助,怎么VBA批量更改文件名
'无须打开文档,可以更改各种类型的文件的文件名,对文件夹下所有文件更名Dim fd As FileDialogDim i As IntegerDim strfiles As String, strextfilename As String, newfilename As StringSet fd = Application.FileDialog(msoFileDialogFolderPicker)If fd.Show = -1 Then strfiles = Dir(fd.Sel...

Excel vba批量提取文件名+修改文件名!
首先新建一个excel文件,然后打开该excel,接着,按F12另存为xlsm格式的文件,如下图所示:打开另存的文件xlsm,然后按ALT+F11,打开宏编辑界面,如下图所示:接下来找到thisworkbook的模块,然后将如下的代码,复制粘贴到指定的模块中,如下图所示: 代码:Sub 批量获取文件名() Cells = ""...

excel中如何批量修改文件名excel中如何批量修改文件名字
可以使用VBA宏实现批量修改Excel文件名称。VBA宏具有自动化处理功能,可以对多个文件进行批量处理,可以将文件名按一定规则进行修改。使用VBA宏批量修改Excel文件名称,首先需要编写宏代码,然后在Excel中运行代码即可实现批量修改。具体操作步骤为:打开Excel工作簿,按下Alt+F11键,进入Visual Basic编辑器界面,...

excel怎么使用vba快速重命名未打开的文件?
1、首先我们打开一个工作样表作为例子。2、我们使用alt+f11组合快捷键进入vbe编辑器,插入一个新的模块,并在模块中输入以下代码:Sub rename()Name 工作簿路径\\旧名称.xls As 工作簿路径\\新名称.xls End Sub 3、我们知道在excel中保存一个文件为另一个文件时可以重新命名,save as 就是本例中as ...

excel 中,怎么利用vba把文件另存为另一个文件名?
回到“第一章目录”工作簿,再次按下“Alt + F8”调出宏对话框。在这里,找到你刚才创建的宏并点击“执行”按钮。执行后,每个文件名应该会出现在Sheet1中,你可以根据需要调整显示格式。通过以上步骤,你就能成功将Excel文件的名称转换并保存为新的格式,问题得到了解决。记得在操作过程中,确保代码的...

Excel VBA,求批量更改各个excel的单个工作表名称
答:可以。复制下面代码到VB编辑器里,运行"ModifySheetName"程序。程序会弹出对话框来让你选择文件,修改完成后保存在原位置。Private Function GetDirectory() Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFolderPicker) With fd If .Show = -1 Then GetDirectory...

求EXCEL VBA批量修改文件名的代码示例
1、首先建立一个EXCEL表 其中第一个工作薄名称为照相顺序表 如下图 Sub 照片重命名()If MsgBox("程序将重命名与本工作薄同目录下的所有照片文件,确认这样做么?", vbYesNo) <> 6 Then Exit Sub End If Dim oldname As String '旧文件名变量oldname Dim newname As String '新文件名变量...

如何使用VBA给所有Excel工作表添加相同前缀或后缀?
方法一:双击标签重命名 通过鼠标,双击工作表标签,输入新名称后按回车。然而,这种方法对于大量工作表的批量重命名效率较低,无法快速添加相同前缀或后缀。方法二:快捷键重命名 熟练的键盘操作者可以尝试使用快捷键ALT+O+H+R,配合Ctrl+PageUp\/PageDown切换工作表,但同样需要多次操作。方法三:工具栏...

相似回答