vba想要將文件名數(shù)組中所有文件名剔除尾綴.xlsx,其實(shí)就是從每個(gè)字符串?dāng)?shù)組元素中刪除特定的子字符串,可以通過遍歷所有數(shù)組元素使用Replace函數(shù)將該子字符串替換為空,比如現(xiàn)在有一個(gè)文件名數(shù)組【"工作簿1.xlsx", "工作簿2.xlsx", "工作簿3.xlsx", "工作簿4.xlsx", "工作簿5.xlsx"】,剔除數(shù)組里所有“.xlsx”的代碼如下:
Sub 剔除文件名數(shù)組中的所有尾綴() arr = Array("工作簿1.xlsx", "工作簿2.xlsx", "工作簿3.xlsx", "工作簿4.xlsx", "工作簿5.xlsx") For i = LBound(arr) To UBound(arr) '數(shù)組下標(biāo)從最小下標(biāo)到最大下標(biāo) arr(i) = Replace(arr(i), ".xlsx", "") '將元素中的“.xlsx”替換為空 Next i MsgBox Join(arr, ",") '用“,”串聯(lián)數(shù)組所有元素查看結(jié)果 End Sub
以上代碼是從文件名數(shù)組的最小下標(biāo)遍歷到最大下標(biāo),用Replace函數(shù)逐個(gè)將文件名里的“.xlsx”替換為空,最后得到的數(shù)組是【"工作簿1", "工作簿2", "工作簿3", "工作簿4", "工作簿5"】。
以上方法在數(shù)組非常大時(shí)會(huì)因?yàn)橐闅v所有數(shù)組元素而導(dǎo)致運(yùn)算緩慢,如果想要更快完成剔除,可以用Join函數(shù)借助特殊字符將數(shù)組合并成一個(gè)字符串,再使用Replace函數(shù)對(duì)整個(gè)字符串的所有“.xlsx”進(jìn)行替換為空,最后再用Split函數(shù)根據(jù)原來的特殊字符拆分復(fù)原回?cái)?shù)組,具體代碼如下:
Sub 剔除文件名數(shù)組中的所有尾綴() arr = Array("工作簿1.xlsx", "工作簿2.xlsx", "工作簿3.xlsx", "工作簿4.xlsx", "工作簿5.xlsx") aa = "@" '設(shè)定一種特殊字符作為字符串聯(lián)時(shí)的分隔符【該特殊字符必須是在數(shù)組元素中沒有的符號(hào)】 merge_string = Join(arr, aa) '將數(shù)組中的所有元素根據(jù)“@”串聯(lián)組合成字符串 merge_string = Replace(merge_string, ".xlsx", "") '將字符串中的所有“.xlsx”替換為空 arr = Split(merge_string, aa) '根據(jù)“@”將字符串重新拆分為數(shù)組 MsgBox Join(arr, ",") '用“,”串聯(lián)數(shù)組所有元素查看結(jié)果 End Sub
以上代碼最后得到數(shù)組同樣是【"工作簿1", "工作簿2", "工作簿3", "工作簿4", "工作簿5"】,但速度在數(shù)組很大時(shí)會(huì)比第一種方法快。
需要注意的是,選擇用于組合數(shù)組的特殊字符必須是在數(shù)組元素中沒有的符號(hào)。
以上內(nèi)容對(duì)您有幫助可以分享或轉(zhuǎn)藏,避免以后找不到。想要了解更多VBA相關(guān)知識(shí),歡迎到http://moqingyan.360doc.com我的個(gè)人圖書館查看。
聯(lián)系客服