在需要將一些文件名稱修改成特定的名稱時,如果文件比較多的話,,手動修改費時費力,,vba可以借助工作表,,批量重命名文件。 首先,,要在工作簿中建立一個用于改名的工作表,,如下圖,在B1單元格中輸入改名文件所在的文件夾: 接著獲取要更改的文件名(原文件名),,獲取的方法有很多種,,可以使用batch(批處理): DIR *.* /B> 文件名清單.txt pause 也可以使用vba: Sub 獲取指定目錄下的文件名() Dim row As Integer row = 4 '設(shè)定單元格中存放文件名的起始行 Path = Cells(1, 2) & IIf(Right(Cells(1, 2), 1) = "\", "", "\") '將文件所在文件夾路徑賦予變量,并最后補加“\” file_name = Dir(Path, vbDirectory) '在path所代表的文件夾搜索,,將找到的第一個文件或文件夾名稱賦予變量str Do While Len(file_name) <> 0 '當(dāng)str不為空字符串時進入循環(huán) If file_name <> "." And file_name <> ".." And GetAttr(Path & file_name) <> 16 Then '檢測排除上一級目錄標(biāo)識和文件夾 Cells(row, 1) = file_name '將找到的文件名賦予單元格 row = row + 1 '每循環(huán)一次變量加1 End If file_name = Dir '如果希望dir函數(shù)返回指定文件夾里面多個文件名,,只需要在同一過程里面再次調(diào)用dir函數(shù)即可,而且后面的調(diào)用不需要指定參數(shù) Loop End Sub 獲取文件名到左側(cè)的“原文件名”的結(jié)果如下圖: 接下來補充右側(cè)的“修改后文件名”: 補充“修改后文件名”后,,就可以使用以下vba代碼批量改名文件: Sub 批量重命名文件() row = 4 '設(shè)定單元格中存放文件名的起始行 maxrow = ActiveSheet.UsedRange.Rows.Count '當(dāng)前活動工作表的行長 Path = Cells(1, 2) & IIf(Right(Cells(1, 2), 1) = "\", "", "\") '將文件所在文件夾路徑賦予變量,,并最后補加“\” For i = row To maxrow a_file_fullname = Path & Cells(i, 1) '原文件路徑+名稱 b_file_fullname = Path & Cells(i, 2) '修改后文件路徑+名稱 Name a_file_fullname As b_file_fullname '文件改名 Next End Sub 以上內(nèi)容對您有幫助可以分享或轉(zhuǎn)藏,,避免以后找不到,。想要了解更多VBA相關(guān)知識,歡迎到http://moqingyan.360doc.com我的個人圖書館查看,。 |
|