其實(shí)是很簡單的……高手就不用看了……主要是實(shí)用,菜鳥隨手就能用上
今天在做一個(gè)給客戶優(yōu)惠的錄入項(xiàng)目,一年一度要受的苦
同事給的是一列如“美元優(yōu)惠結(jié)售匯中間價(jià)80個(gè)點(diǎn)”的數(shù)據(jù),而我就要其中的“80”,近千個(gè),一個(gè)個(gè)輸與核對(duì)要60分鐘。
手工輸入自非我EXCELHOME會(huì)員本色,但是貌似EXCEL無現(xiàn)成函數(shù),如果要?jiǎng)佑脭?shù)組函數(shù)環(huán)環(huán)嵌套也十分麻煩,不過我眉頭一皺,計(jì)上心來
何不用無限強(qiáng)大的VBA呢,指導(dǎo)思想就是遍歷每個(gè)非空單元格,逐個(gè)檢查單元格內(nèi)容的每個(gè)字符,如果是數(shù)字則抓出來。
以下是代碼
你可以將它復(fù)制到VB編輯器里對(duì)應(yīng)SHEET的代碼欄位,然后啟用宏,并將安全等級(jí)調(diào)至 中,使用時(shí)直接雙擊你要轉(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)鍵時(shí)ISNUMERIC個(gè)函數(shù)省去不少麻煩,如果自己寫估計(jì)要逐個(gè)判斷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) '主要實(shí)現(xiàn)雙擊那列第一格才呼叫 GETNUMBER的過程
If Target.Row = 1 Then k = Target.Column Call getnumber End If End Sub |
|