其實是很簡單的……高手就不用看了……主要是實用,菜鳥隨手就能用上
今天在做一個給客戶優(yōu)惠的錄入項目,一年一度要受的苦
同事給的是一列如“美元優(yōu)惠結(jié)售匯中間價80個點”的數(shù)據(jù),而我就要其中的“80”,近千個,一個個輸與核對要60分鐘。
手工輸入自非我EXCELHOME會員本色,但是貌似EXCEL無現(xiàn)成函數(shù),如果要動用數(shù)組函數(shù)環(huán)環(huán)嵌套也十分麻煩,不過我眉頭一皺,計上心來
何不用無限強大的VBA呢,指導思想就是遍歷每個非空單元格,逐個檢查單元格內(nèi)容的每個字符,如果是數(shù)字則抓出來。
以下是代碼
你可以將它復制到VB編輯器里對應SHEET的代碼欄位,然后啟用宏,并將安全等級調(diào)至 中,使用時直接雙擊你要轉(zhuǎn)換的那列第一格即可……
Public k
Sub getnumber()
Dim i As Integer
Dim p As Integer
Dim j As Integer
Dim ggg As String
For i = 2 To [A65536].End(xlUp).Row
p = Len(Cells(i, k))
ggg = ""
For j = 1 To p
If IsNumeric(Mid(CStr(Cells(i, k)), j, 1)) = True Then '所以說關鍵時ISNUMERIC個函數(shù)省去不少麻煩,如果自己寫估計要逐個判斷ASCII碼表咯。
ggg = ggg & Mid(CStr(Cells(i, k)), j, 1)
End If
Next
Cells(i, k) = ggg
Next
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) '主要實現(xiàn)雙擊那列第一格才呼叫 GETNUMBER的過程
If Target.Row = 1 Then
k = Target.Column
Call getnumber
End If
End Sub
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。