A. 如何用批量文件夾名替換文件名
1、打開需要提取文件名的文件夾,在這個文件夾內新建一個記事本文件。
B. 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即可得到如下的顯示,證明我們已經提取成功了文件名:
大家看一下,是不是和新建文件夾中的文件名一樣,如下圖所示:
然後在新版名稱中,輸入我們想變更後的名稱,如下圖所示:
注意,要將文件的擴展名加上,如下圖所示:
然後刪除掉沒用的列,如下圖所示:
同樣單擊視圖,宏當中的查看宏,調出我們的第二個過程,批量重命名,選擇執行,如下圖所示:
好了可以看到我們的文件重命名了,如下圖所示:
在這里提供給大家,視頻的演示: