集装箱号(Container Number),也称为集装箱编码,是用于标识集装箱的唯一标识符。集装箱是一种用于装载货物并方便运输的大型金属箱子,常用于海陆空运输。集装箱号是一种用于跟踪和识别集装箱的编号系统,以确保货物在运输过程中的安全性和可追踪性。
-
集装箱号通常由一串字母和数字组成,具体的格式可以根据国际标准(ISO 6346)或各个运输公司的规定而有所不同。ISO 6346标准定义了一种集装箱标识码,通常被称为“BIC码”(Bureau International des Containers et du Transport Intermodal code),它由11个字符组成,包括四个字母作为公司代码,七个字符作为唯一编号。
- 以下是一个集装箱号的示例:
- ISO 6346格式(BIC码): ABCU1234567
- 非ISO格式(运输公司自定义): XYZ4567890
-
集装箱号在国际贸易和运输中起到了关键的作用:
-
货物追踪: 集装箱号能够帮助船运公司、货代、货主等各方追踪和识别特定的集装箱,从出发港到目的港的整个运输过程中都可以跟踪。
-
安全性: 集装箱号可以与货物信息关联,有助于确保正确的货物被装载、卸载和运输,防止货物遗失或混淆。
-
海关申报: 集装箱号通常需要在运输文件和海关文件中提供,以满足相关法规和要求。
-
船舶计划: 船公司使用集装箱号来规划船只的装载和卸载顺序,以最大程度地提高效率。
-
保险索赔: 在货物损失或损坏的情况下,集装箱号可以用于提交保险索赔。
-
- 总之,集装箱号在现代国际物流和运输中扮演着至关重要的角色,确保货物的安全、追踪和准确的记录。
方法一:
Function jzxh(xh)
xh = Application.WorksheetFunction.Trim(xh)
Dim a(1 To 2, 1 To 36) As Integer
Dim i As Integer, j As Integer, n As Long
If Len(xh) <> 11 Then
jzxh = "集装箱号无效"
Exit Function
End If
xh = LCase(xh)
n = 9
For i = 0 To 35
If i < 10 Then
a(1, i + 1) = i + 48
a(2, i + 1) = i
Else
n = n + 1
a(1, i + 1) = 87 + i
If n Mod 11 = 0 Then n = n + 1
a(2, i + 1) = n
End If
Next
n = 0
For i = 1 To 10
For j = 1 To 36
If Asc(Mid(xh, i, 1)) = a(1, j) Then
n = n + a(2, j) * 2 ^ (i - 1)
Exit For
End If
Next
If j = 37 Then
jzxh = "集装箱号无效"
Exit Function
End If
Next
If n Mod 11 = Val(Right(xh, 1)) Then
jzxh = "效验正确"
Else
jzxh = "箱号错误"
End If
End Function
方法二:
Public Function VerifyContainerCode(ByVal strCode As String) As Boolean
Const Charcode As String = "0123456789A?BCDEFGHIJK?LMNOPQRSTU?VWXYZ"
Dim i As Long, n As Long, sum As Long
If Len(strCode) <> 11 Then Exit Function
For i = 1 To 10
n = InStr(1, Charcode, UCase(Mid(strCode, i, 1))) - 1
If n = -1 Or Mid(strCode, i, 1) = "?" Then Exit Function
n = n * 2 ^ (i - 1)
sum = sum + n
Next i
sum = (sum Mod 11) Mod 10
If Val(Mid(strCode, 11, 1)) = sum Then VerifyContainerCode = True
End Function
Public Function ZCode(ByVal strCode As String) As String
Const Charcode As String = "0123456789A?BCDEFGHIJK?LMNOPQRSTU?VWXYZ"
Dim i As Long, n As Long, sum As Long
strCode = Application.WorksheetFunction.Trim(strCode)
If Len(strCode) <> 11 Then Exit Function
For i = 1 To 10
n = InStr(1, Charcode, UCase(Mid(strCode, i, 1))) - 1
If n = -1 Or Mid(strCode, i, 1) = "?" Then Exit Function
n = n * 2 ^ (i - 1)
sum = sum + n
Next i
sum = (sum Mod 11) Mod 10
If Val(Mid(strCode, 11, 1)) = sum Then
ZCode = "效验正确"
Else
ZCode = "箱号错误"
End If
End Function