其實是很簡單的……高手就不用看了……主要是實用,菜鳥隨手就能用上
今天在做一個給客戶優(yōu)惠的錄入項目,一年一度要受的苦
同事給的是一列如“美元優(yōu)惠結(jié)售匯中間價80個點”的數(shù)據(jù),而我就要其中的“80”,近千個,一個個輸與核對要60分鐘。
手工輸入自非我EXCELHOME會員本色,但是貌似EXCEL無現(xiàn)成函數(shù),如果要動用數(shù)組函數(shù)環(huán)環(huán)嵌套也十分麻煩,不過我眉頭一皺,計上心來
何不用無限強(qiáng)大的VBA呢,指導(dǎo)思想就是遍歷每個非空單元格,逐個檢查單元格內(nèi)容的每個字符,如果是數(shù)字則抓出來。
以下是代碼
你可以將它復(fù)制到VB編輯器里對應(yīng)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 '所以說關(guān)鍵時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 |
|