替換Excel表格中的字符或者字符串在職場數(shù)據(jù)處理中經(jīng)常遇到,本篇神奇的VBA將介紹如何一一對應(yīng)的將某些字符替換為其它字符。 ------ 需求案例------ 將A1:A9單元格區(qū)域中的1,2,3數(shù)字分別替換為A,B,C。 神奇的VBA提供兩種思路。 ------ 方法1------ 將待替換字符和對應(yīng)替換字符一一對應(yīng)的放入兩個一維數(shù)組中,再循環(huán)遍歷A1:A9單元格區(qū)域和數(shù)組進(jìn)行替換。 Sub 替換思路1() Dim str As String Dim cell As Range Dim arr Dim brr arr = Array(1, 2, 3) '賦值一維數(shù)組arr brr = Array("A", "B", "C")'賦值一維數(shù)組brr For Each cell In Range("A1:A9") '遍歷單元格區(qū)域 str = cell For x = 0 To UBound(arr) '遍歷arr數(shù)組 str = Replace(str, arr(x), brr(x)) '使用Replace方法替換str中的字符 Next cell = str '將str變量值回賦值給單元格 Next End Sub 本例中,Array函數(shù)構(gòu)造的數(shù)組屬于一維數(shù)組。兩個一個數(shù)組元素是一一對應(yīng)的,循環(huán)替換時正好集中替換掉了??刹殚啞渡衿娴腣BA》了解數(shù)組和Replace函數(shù)的詳細(xì)的使用方法。 ------ 方法2------ 不采用方法1中的數(shù)組,選擇嵌套使用Replace函數(shù),依次替換對應(yīng)字符。 Sub 替換思路2() Dim str As String Dim cell As Range For Each cell In Range("A1:A9")'遍歷單元格區(qū)域 str = cell str = Replace(Replace(Replace(str, "1", "A"), "2", "B"), "3", "C") cell = str Next End Sub 本例代碼簡短,對于少量字符替換非常好,但是對于大于5個字符或者字符串替換的話,代碼看上去就有點亂了,Replace(Replace(Replace(str, "1", "A"), "2", "B"), "3", "C")這樣的嵌套函數(shù)對于Excel VBA的初學(xué)者們看得也很費勁, 這時候就優(yōu)選方法1進(jìn)行替換了。 |
|
來自: 神奇的ExcelVBA > 《待分類》