怎么提取EXCEL單元格出現(xiàn)的數(shù)據(jù)?
網(wǎng)友解答: 看了別人回復(fù)的答案估計(jì)都不能解決你的問(wèn)題。如果你的問(wèn)題只有一處數(shù)值,可以用公式實(shí)現(xiàn),但你看你的需求是在一個(gè)字符串中(即文本中),需要提取的數(shù)值不止一處。用公式很難實(shí)現(xiàn)。下面介
看了別人回復(fù)的答案估計(jì)都不能解決你的問(wèn)題。如果你的問(wèn)題只有一處數(shù)值,可以用公式實(shí)現(xiàn),但你看你的需求是在一個(gè)字符串中(即文本中),需要提取的數(shù)值不止一處。用公式很難實(shí)現(xiàn)。下面介紹用EXCEL VBA幫你解決問(wèn)題。
【注】以下方法同樣適合所有需要在一個(gè)文本中提取某幾處數(shù)值的要求。
比如我們需要將提取的字符串在A2開始輸入原始的文本,右側(cè)無(wú)限提取文本中出現(xiàn)的數(shù)值。
操作方法:
一、點(diǎn)擊【開發(fā)工具】的【查看代碼】,如下圖
二、雙擊左側(cè)所在的工作表(即我們輸入了原始數(shù)據(jù)所在的工作表)
三、復(fù)制以下代碼,粘貼(拷貝)至右側(cè)區(qū)域
---------------------代碼區(qū)--------------------
Sub 提取數(shù)字()
Dim i As Integer, j As Integer, col As Integer, rowcnt As Long, str As String, b1 As Boolean
On Error Resume Next
b1 = False
'默認(rèn)從第二列開始寫入數(shù)值
col = 2
' 獲得原始數(shù)據(jù)的最后一列值
rowcnt = Range("A65535").End(xlUp).Row
'開始循環(huán)原始數(shù)據(jù)
For i = 2 To rowcnt
'遍歷一個(gè)單元格的每個(gè)字符
For j = 1 To Len(Cells(i, 1))
'判斷一個(gè)字符是否為整數(shù)
If Mid(Cells(i, 1), j, 1) Like "#" Then
b1 = True
'將一個(gè)整數(shù)寫入到str的最后一位中.
str = str + Mid(Cells(i, 1), j, 1)
Else
'輸出str的值到對(duì)應(yīng)的單元格中
If b1 = True Then
Cells(i, col) = --str
col = col + 1
'重新賦空值
str = ""
b1 = False
End If
End If
'判斷最后一個(gè)數(shù)值是否在最字符串中的是末尾處,因?yàn)樯厦娴难h(huán)沒有輸出,這里需要輸出最后為數(shù)值的結(jié)果
If b1 = True And j = Len(Cells(i, 1)) Then
Cells(i, col) = --str
col = col + 1
str = ""
b1 = False
End If
Next j
'重新將列恢復(fù)默認(rèn)值
col = 2
Next i
End Sub
---------------------代碼區(qū)--------------------
四、運(yùn)行代碼:點(diǎn)擊下圖所示的按鍵(或按F5),執(zhí)行代碼
五、執(zhí)行代碼后所得到的結(jié)果如下圖所示:
結(jié)束!
以上若有什么疑問(wèn),可關(guān)注本人酷米號(hào)后發(fā)私信給我。歡迎相互交流。
網(wǎng)友解答:如果你的Excel版本是2013或者2016,你可以在旁邊的單元格輸入第一個(gè)數(shù)字,比如先輸入二,然后按CTRL加e。就可以快速填充。
如果說(shuō)你的版本是在Excel2013以下,或者說(shuō)是WPS,那么可以考慮用數(shù)據(jù)分列的功能,這種方式的前提是你在數(shù)據(jù)錄入過(guò)程中有明顯的分隔符。
答案望采納。