如圖3-24 所示,在當(dāng)前工作簿的目錄下有兩個(gè)文件夾。如何利用VBA 將文件夾“文件”內(nèi)的所有文件復(fù)制到另一個(gè)文件夾“新文件”中并實(shí)現(xiàn)批量改名,將文件之后加上擴(kuò)展名“.BAK”,從而創(chuàng)建備份?
解決方案
使用Dir 查找該文件夾下的所有文本文件,然后使用FileCopy 語(yǔ)句進(jìn)行復(fù)制,并同時(shí)修改文件名。
操作方法
步驟1 按組合鍵【Alt+F11】打開(kāi)VBE。
步驟2 選擇菜單“插入”→“模塊”,輸入以下代碼后按【F5】鍵執(zhí)行:
- Sub 批量復(fù)制文件并改名()
- '變量聲明
- Dim sPathOld As String '源文件夾路徑
- Dim sPathNew As String '目標(biāo)文件夾路徑
- Dim sFileNameOld As String '舊文件名
- Dim sFileNameNew As String '新文件名
- '獲取源文件夾路徑
- sPathOld = ThisWorkbook.Path & "\文件\"
- '獲取目標(biāo)文件夾路徑
- sPathNew = ThisWorkbook.Path & "\新文件\"
- '查找源文件夾中的文件
- sFileNameOld = Dir(sPathOld & "*")
- '當(dāng)查找結(jié)果存在時(shí)不斷循環(huán)
- Do While sFileNameOld <> ""
- '設(shè)定新文件名
- sFileNameNew = sFileNameOld & ".BAK"
- '復(fù)制文件并改名
- FileCopy sPathOld & sFileNameOld, sPathNew & sFileNameNew
- '移動(dòng)文件
- 'Name sPathOld & sFileNameold As sPathNew & sFileNamenew
- '查找下一個(gè)文件
- sFileNameOld = Dir
- Loop
- End Sub
步驟3 按組合鍵【Ctrl+G】打開(kāi)立即窗口,在立即窗口中輸入“批量復(fù)制文件并改名”后按【Enter】鍵,即可實(shí)現(xiàn)文件的復(fù)制。
※FileCopy 語(yǔ)句※
FileCopy 語(yǔ)句可以復(fù)制文件并重新命名,其語(yǔ)法為
- FileCopy source, destination
其中,參數(shù)source 為源文件的完整路徑,包括文件路徑和文件名。
參數(shù)destination 為目標(biāo)文件的完整路徑,包括文件路徑和文件名。
當(dāng)source 指定的文件名與destination 所指定的文件名不相同時(shí),文件可以以destination所指定的文件名保存,即實(shí)現(xiàn)改名的功能。
知識(shí)擴(kuò)展
※Name…As 語(yǔ)句※
Name…As 語(yǔ)句可以完成文件重命名或者移動(dòng)的功能,其語(yǔ)法為
- Name oldpathname As newpathname
其中,參數(shù)oldpathname 為源文件的完整路徑,包括文件路徑和文件名。
參數(shù)newpathname 為目標(biāo)文件的完整路徑,包括文件路徑和文件名。
當(dāng)oldpathname 所指定的文件路徑與newpathname 所指定的文件路徑相同時(shí),可以實(shí)現(xiàn)文件改名操作。若兩者不相同,VBA 將把文件從oldpathname 所指定的文件路徑移動(dòng)至newpathname 所指定的文件路徑,并將文件以newpathname 所指定的文件名進(jìn)行重命名。
聯(lián)系客服