Excel vba批量提取文件名+修改文件名!

如题所述

首先新建一个excel文件,然后打开该excel,接着,按F12另存为xlsm格式的文件,如下图所示:

打开另存的文件xlsm,然后按ALT+F11,打开宏编辑界面,如下图所示:

接下来找到thisworkbook的模块,然后将如下的代码,复制粘贴到指定的模块中,如下图所示: 代码:Sub 批量获取文件名() Cells = "" Dim sfso Dim myPath As String Dim Sh As Object Dim Folder As Object Application.ScreenUpdating = False On Error Resume Next Set sfso = CreateObject("Scripting.FileSystemObject") Set Sh = CreateObject("shell.application") Set Folder = Sh.BrowseForFolder(0, "", 0, "") If Not Folder Is Nothing Then myPath = Folder.Items.Item.Path End If Application.ScreenUpdating = True Cells(1, 1) = "旧版名称" Cells(1, 2) = "文件类型" Cells(1, 3) = "所在位置" Cells(1, 4) = "新版名称" Call 直接提取文件名(myPath "\") End Sub Sub 直接提取文件名(myPath As String) Dim i As Long Dim myTxt As String i = Range("A1048576").End(xlUp).Row myTxt = Dir(myPath, 31) Do While myTxt "" On Error Resume Next If myTxt ThisWorkbook.Name And myTxt "." And myTxt ".." And myTxt "081226" Then i = i + 1 Cells(i, 1) = "'" myTxt If (GetAttr(myPath myTxt) And vbDirectory) = vbDirectory Then Cells(i, 2) = "文件夹" Else Cells(i, 2) = "文件" End If Cells(i, 3) = Left(myPath, Len(myPath) - 1) End If myTxt = Dir Loop End Sub Sub 批量重命名() Dim y_name As String Dim x_name As String For i = 2 To Range("A1048576").End(xlUp).Row y_name = Cells(i, 3) "\" Cells(i, 1) x_name = Cells(i, 3) "\" Cells(i, 4) On Error Resume Next Name y_name As x_name Next End Sub

然后回到excel的使用界面,找到视图当中的宏,点击查看宏按钮,如下图所示:

接着会弹出使用宏的界面,我们先找到第一个过程,批量获取文件名,并选择执行,如下图所示:

执行后,选择好我们要批量命名的文件,如下图的新建文件夹:

确定后,在excel即可得到如下的显示,证明我们已经提取成功了文件名:

大家看一下,是不是和新建文件夹中的文件名一样,如下图所示:

然后在新版名称中,输入我们想变更后的名称,如下图所示:

注意,要将文件的扩展名加上,如下图所示:

然后删除掉没用的列,如下图所示:

同样单击视图,宏当中的查看宏,调出我们的第二个过程,批量重命名,选择执行,如下图所示:

好了可以看到我们的文件重命名了,如下图所示:

在这里提供给大家,视频的演示:
温馨提示:内容为网友见解,仅供参考
无其他回答

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

求帮用python写从excel提取名字,改文件夹名称的代码
Option ExplicitSub 宏1()Dim arr, i, j, p, farr = ActiveSheet.UsedRangeFor i = 2 To UBound(arr)'文件改名p = "f:\\downloads\\1\\" & arr(i, 1)f = Dir(p & "*.jpg")j = 1While f <> ""Name p & f As p & arr(i, 2) & arr(i, 3) & j & ".jpg"f = Dir...

EXCEL怎样用VBA自动提取文件夹内的文件名?
按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,按F5执行 Sub t()Dim s As FileSearch '定义一个文件搜索对象 Set s = Application.FileSearch s.LookIn = "c:\\" '注意路径,换成你实际的路径 s.Filename = "*.*" '搜索所有文件 s.Execute '执行搜索 Cells.Delete ...

用EXCEL VBA获取指定目录下的文件名(包括文件夹名)
1、首先利用快捷键“Windows键+R”打开“运行”窗口 2、接着输入“cmd”并点击“打开”3、比如是需要复制输出c盘下的Progam Data中文件夹的名字 4、在命令窗口中输入“cd c:\\Progam Data”5、点击“回车键”后出现下面情况 6、然后输入“dir \/b>d:21.xls”命令并点击“回车键”7、接着就在...

excel中使用vba提取文件名的操作步骤
1.按下ALT+F11,打开VBE编辑器。2.执行“插入——模块”,插入模块1。 3.在右边的代码编辑窗口,复制下面的代码,然后单击“绿色箭头”或者快捷键F5键,运行代码。Private Sub vba提取文件名()    Dim FileName As String    Dim i As Long    File...

使用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...

VBA 如何取C盘下和C盘文件夹下所有Excel文件名称,并将这些文件名放到Ex...
MsgBox "文件名链接获取完毕。", vbOKOnly, "提示"End Sub Private Sub GetFolderFile(ByVal nPath As String, ByRef iCount As Long)Dim iFileSys 'Dim iFile As Files, gFile As File 'Dim iFolder As Folder, sFolder As Folders, nFolder As Folder Set iFileSys = CreateObject("Scripting....

批量更改文件名,并提取至EXCEL
1、BAT批处理文件 A. 获取文件名 选定部分或全选所有文件 > Shift+右键 > 复制为路径 > 粘贴到Excel B. 编辑命令符 l 替换文件名前的路径(全部替换)l 生成如下字符(空格不可缺少): REN_原文件名_新文件名 可以使用EXCEL公式批量处理:例如如下公式可将文件名前增加序列号1,2,3等。=...

相似回答
大家正在搜