Extragerea literelor dintr-o expresie alfa-numerică


Avem câteva coduri de produse de genul:

123abc

abcd1234

12389aaaaaaa

Dorim să extragem doar cifrele. Cu funcţii de tip text e o întreaga nebunie. Iată însă două funcţii, una care extrage cifrele iar cealaltă literele dintr-o expresie de genul celor de mai sus.

Function NumberOut(rng As Range)
Dim i As Integer
For i = 1 To Len(rng)
Select Case Asc(Mid(rng.Value, i, 1))
Case 0 To 64, 123 To 197
Case Else
NumberOut = NumberOut & _
Mid(rng.Value, i, 1)
End Select
Next i
End Function


Function LetterOut(rng As Range)
Dim i As Integer
For i = 1 To Len(rng)
Select Case Asc(Mid(rng.Value, i, 1))
Case 0 To 64, 123 To 197
LetterOut = LetterOut & Mid(rng.Value, i, 1)
End Select
Next i
End Function

Ce trebuie să faceţi?

Copiaţi cele două coduri, deschideţi fereastra Visual Basic Editor (ALT+F11), în ferastra VBE, din meniul INSERT inseraţi un modul nou şi daţi Paste.

letterOut

Ne întoarcem în Excel, şi cu Insert Function (butonul fx) introducem din categoria User Defined, funcția dorită.

letterOut2

Introducem celula care contine codul alfanumeric și…gata

letterOut3