1, 在【VBA常用小代碼205:按指定條件批量刪除Excel工作簿】我們分享了批量提取指定文件夾下工作簿名稱的小代碼,,如下: Sub KjxgBooks() Dim p$, f$, k& With Application.FileDialog(msoFileDialogFolderPicker) .AllowMultiSelect = False If .Show Then p = .SelectedItems(1) Else: Exit Sub End With If Right(p, 1) <> '\' Then p = p & '\' [a:b].ClearContents k = 1 [a1] = '舊文件名' [b1] = '新文件名' f = Dir(p & '*.xls*') Do While f <> '' k = k 1 Cells(k, 1) = p & f f = Dir Loop End Sub 使用以上代碼可以將指定文件夾下的工作簿名稱提取到表格的A列,。 2, 在表格的B列可以通過函數(shù)等方式對舊的名稱進(jìn)行批量更名,,例如在工作簿名稱前面增加“五月天”三個(gè)字,,公式如下: =SUBSTITUTE(A2,'測試\','測試\五月天') 更名后結(jié)果如下: 哦~你問我為什么還使用函數(shù)公式,而不是直接VBA代碼搞定重命名的事,?那樣的話豈不是更省事,? 親,你說的對,! 之所以不用代碼一步到位……是因?yàn)椤?dāng)面對一些更名規(guī)則比較復(fù)雜的情況時(shí),,一些對VBA編程不是那么熟悉的小伙伴們……可以有更多的選擇……比如函數(shù)、查找替換等,。 嗯,,我是一位善良溫暖的大叔,鞠躬環(huán)場致謝,。
3,, 使用以下代碼可以將A列舊的工作簿名稱,替換為B列新的工作簿名稱,。 Sub ChangeBook() Dim r, i& r = [a1].CurrentRegion '數(shù)據(jù)裝入數(shù)組 For i = 2 To UBound(r) '標(biāo)題行不要,,從數(shù)組第二行開始遍歷 Name r(i, 1) As r(i, 2) 'Name語句重命名 Next MsgBox '更名完成。' End Sub 小貼士: Name語句可以重命名一個(gè)文件或文件夾,,也可以將其移動到另一個(gè)文件夾中,,但不能創(chuàng)建新文件或者文件夾,其參數(shù)不能包含通配符,,語法如下: Name oldpathname As newpathname 參數(shù)oldpathname是必須的,為一個(gè)字符串表達(dá)式,,用來指定已存在的文件名或文件夾名,。 參數(shù)newpathname是必須的,為一個(gè)字符串表達(dá)式,,用來指定新的文件名或者文件夾名,,所指定的文件名不能存在,。 另外對于已打開的文件或文件夾使用Name語句,將會產(chǎn)生運(yùn)行時(shí)錯誤,。
|
|