ok
Function NumVerify(ChNum As String) As StringDim Arr0toZ$, Arr0to9$, ArrChar$(1 To 14), Arr135, Arr729
Dim i%, x!
If Len(ChNum) <> 16 Then
NumVerify = "貸款卡編碼必須為16位"
Exit Function
End If
For i = 1 To 14
ArrChar(i) = Mid(ChNum, i, 1)
Next i
Arr0toZ = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Arr0to9 = "0123456789"
Arr135 = Array("1", "3", "5")
Arr729 = Array("7", "11", "2", "13", "1", "1", "17", "19", "97", "23", "29")
For i = 1 To 3
x = x + (WorksheetFunction.Find(ArrChar(i), Arr0toZ) - 1) * Arr135(i - 1)
Next i
For i = 4 To 14
x = x + (WorksheetFunction.Find(ArrChar(i), Arr0to9) - 1) * Arr729(i - 4)
Next i
If Right(1 + x Mod 97, 2) <> Mid(ChNum, 15, 2) Then
NumVerify = "貸款卡編碼校驗碼錯誤"
End If
End Function