2014년 12월 15일 월요일

IMEI 끝자리 생성(check sum) 사용자 엑셀(vba) 함수


사용법
=IMEICALC(셀위치)

A5 내용 : 12345678901234 <- 14자리여야한다.
=IMEICALC(A5)
마지막 자리에 chcksum이 붙어서 나타난다.


Function IMEICALC(str As String) As Variant
Dim imei As Variant
Dim sum As Variant
Dim strlen As Integer

ReDim imei(1 To 14) As Integer

strlen = Len(str)
If strlen <> 14 Then
    IMEICALC = "ERROR"
    Return
End If

For i = 1 To 14 Step 1
    imei(i) = Mid(str, i, 1)
Next i


For i = 2 To 14 Step 2
    imei(i) = imei(i) * 2
    If imei(i) >= 10 Then
        imei(i) = imei(i) - 10 + 1
    End If
Next i

sum = 0
For i = 1 To 14 Step 1
    sum = sum + imei(i)
Next i

IMEICALC = sum Mod 10
IMEICALC = 10 - IMEICALC
If IMEICALC = 10 Then
    IMEICALC = 0
End If

IMEICALC = str & IMEICALC
End Function









댓글 없음:

댓글 쓰기