Private Sub t()
Dim s As String
Dim ID As String
Dim CONTAINER_NO As String
Dim SEAL_NO As String
Dim ISO_TYPE As String
Dim MOVEMENT_TYPE As String
Dim NUMBER_OF_PACKAGE As String
Dim PACKAGE_TYPE As String
Dim WEIGHT As Double
s = "001FCIU7196282NL572013 4510NFCY-CY N000840CT 11123504000000065380 GC11123500L572013"
ID = Left(s, 3)
s = Trim(Mid(s, 4))
CONTAINER_NO = Left(s, InStr(1, s, "N") - 1)
s = Trim(Replace(s, CONTAINER_NO & "N", "", 1, 1))
SEAL_NO = Trim(Left(s, InStr(1, s, " ")))
s = Trim(Replace(s, SEAL_NO, "", 1, 1))
ISO_TYPE = Left(s, InStr(1, s, "N") - 1)
s = Trim(Replace(s, ISO_TYPE & "NF", "", 1, 1))
MOVEMENT_TYPE = Trim(Left(s, InStr(1, s, " ")))
s = Trim(Replace(s, MOVEMENT_TYPE, "", 1, 1))
s = Replace(s, "N", "", 1, 1)
NUMBER_OF_PACKAGE = getNumberOfPackage(s)
s = Trim(Replace(s, NUMBER_OF_PACKAGE, "", 1, 1))
PACKAGE_TYPE = Left(s, 2)
s = Trim(Replace(s, PACKAGE_TYPE, "", 1, 1))
s = Trim(Replace(s, SEAL_NO, "", 1, 1))
WEIGHT = getWeight(s)
Debug.Print "ID = " & ID
Debug.Print "CONTAINER NUMBER = " & CONTAINER_NO
Debug.Print "SEAL NUMBER = " & SEAL_NO
Debug.Print "ISO TYPE = " & ISO_TYPE
Debug.Print "MOVEMENT TYPE = " & MOVEMENT_TYPE
Debug.Print "NUMBER OF PKG = " & NUMBER_OF_PACKAGE
Debug.Print "PACKAGE TYPE = " & PACKAGE_TYPE
Debug.Print "WEIGHT = " & WEIGHT
End Sub
Public Function getWeight(sString As String) As Double
Dim s As String
Dim sRet As String
Dim i As Integer
For i = Len(sString) To 1 Step -1
s = Mid(sString, i, 1)
If IsNumeric(s) Then
sRet = s & sRet
Else
Exit For
End If
Next
If Len(sRet) > 0 Then
getWeight = Val(sRet) * 0.001
End If
End Function
Public Function getNumberOfPackage(sString As String) As String
Dim s As String
Dim sRet As String
Dim i As Integer
For i = 1 To Len(sString)
s = Mid(sString, i, 1)
If IsNumeric(s) Then
sRet = sRet & s
Else
Exit For
End If
Next
If Len(sRet) > 0 Then
getNumberOfPackage = sRet
End If
End Function