前一段時(shí)間在網(wǎng)上看到有人提問怎么將儲(chǔ)存在單元格內(nèi)的以逗號(hào)作為分割符的多個(gè)字符串提取到多個(gè)單元格中,大概的效果如下圖 解決這個(gè)問題最簡單的方法就用Excel數(shù)據(jù)分列的方法,選定區(qū)域,在數(shù)據(jù)選項(xiàng)中找到并單擊分列選項(xiàng)。 但是在數(shù)據(jù)量非常大的情況下,用VBA的方法可能是效率最高的,代碼分享如下: Sub 字符串分裂() Dim rg As Range, i As Integer, ncol As Integer, k As Integer, r As Integer Dim arr ncol = Selection.Column 1 nrow = Selection.row r = nrow For Each rg In Selection k = 0 arr = Split(CStr(rg.Value), ',') ’將單元格里的按逗號(hào)分割儲(chǔ)存在數(shù)組arr中 For i = ncol To UBound(arr) ncol Cells(r, i) = arr(k) k = k 1 Next r = r 1 Next End Sub 這里主要用到了split()函數(shù)的功能,split函數(shù)可以將指定字符串按照指定的字符分割成多個(gè)字符串,在語句arr=split(CStr(rg.Value),”,”) 中,split的第一個(gè)參數(shù)CStr(rg.Value)是單元格的值,具體來說是轉(zhuǎn)化成字符形式的單元格內(nèi)容,因?yàn)閟plit函數(shù)第一個(gè)參數(shù)必須是字符類型,所以為了保證這一點(diǎn),先用CStr()將單元格的值rg.Value轉(zhuǎn)化為字符類型。第二參數(shù)設(shè)置分隔符,這里是“,”,即英文狀態(tài)下的逗號(hào)。Split還有兩個(gè)參數(shù),這里省略了,關(guān)于split函數(shù)詳細(xì)的介紹請(qǐng)參考百度。 我們只要在原代碼中修改split函數(shù)中,第二個(gè)參數(shù)的值,(即分隔符)來達(dá)到按不同分隔符分割字符串的目的,例如我們?cè)谠a中修改arr = Split(CStr(rg.Value), ',')語句,將其改為arr = Split(CStr(rg.Value), ' ') 就可以實(shí)現(xiàn)按空格分 割。操作如下: 好啦今天的分享結(jié)束啦,感謝小伙伴們的聆聽! |
|