电子元器件编码

来源:百度文库 编辑:神马文学网 时间:2024/04/29 15:11:44
Public Function getArray(str, sp)
    getArray = Split(str, sp)
End FunctionPublic Function getItem(str, sp, i)
    If (Len(str) = 0) Then
        getItem = ""
        Exit Function
    End If
    Dim tmp
    If i > UBound(Split(str, sp)) Then
        getItem = ""
        Exit Function
    End If
    tmp = Split(str, sp)(i)
    If (Len(tmp) > 0) Then
        getItem = tmp
    Else
        getItem = ""
    End If
End FunctionPublic Function getR(str) '取阻值有效+倍数
    If Len(str) = 4 Then
        If LCase(Right(str, 1)) = "m" Then
            getR = Left(str, 3) & "6"
        ElseIf LCase(Right(str, 1)) = "k" Then
            getR = Left(str, 3) & "3"
        ElseIf LCase(Right(str, 1)) = "r" Then
            getR = Left(str, 3) & "0"
        Else
            getR = str
        End If
    ElseIf Len(str) = 3 Then
        If LCase(Right(str, 1)) = "m" Then
            getR = Left(str, 2) & "05"
        ElseIf LCase(Right(str, 1)) = "k" Then
            getR = Left(str, 2) & "02"
        ElseIf LCase(Right(str, 1)) = "r" Then
            getR = "0" & Left(str, 2) & "0"
        ElseIf LCase(Mid(str, 2, 1)) = "m" Then
            getR = Left(str, 1) & Right(str, 1) & "05"
        ElseIf LCase(Mid(str, 2, 1)) = "k" Then
            getR = Left(str, 1) & Right(str, 1) & "01"
        ElseIf LCase(Mid(str, 2, 1)) = "r" Then
            getR = "0" & Left(str, 1) & Right(str, 1) & "A"
        ElseIf LCase(Mid(str, 1, 1)) = "r" Then
            getR = "0" & Right(str, 2) & "B"
        Else
            getR = str
        End If
    ElseIf Len(str) = 2 Then
        If LCase(Right(str, 1)) = "m" Then
            getR = Left(str, 1) & "004"
        ElseIf LCase(Right(str, 1)) = "k" Then
            getR = Left(str, 1) & "001"
        ElseIf LCase(Right(str, 1)) = "r" Then
            If Left(str, 1) = 0 Then
                getR = "0000"
            Else
                getR = "00" & Left(str, 1) & "0"
            End If
        End If
    Else
        getR = ""
    End If
End FunctionPublic Function getCV(str) '取电容耐压
    Dim tmp
    If LCase(Right(str, 1)) = "v" Then
        tmp = Left(str, Len(str) - 1)
        If LCase(Right(tmp, 1)) = "k" Then
            getCV = Left(tmp, Len(tmp) - 1) & "000V"
        Else
            getCV = tmp & "V"
        End If
    Else
        getCV = ""
    End If
End FunctionPublic Function getCode(pcode, pname, name) '取得编码
    If Len(Trim(name)) = 0 Then
        getCode = ""
        Exit Function
    End If
    Set arrcode = Worksheets("编码规则").Range(pcode)
    Set arrname = Worksheets("编码规则").Range(pname)
    If IsArray(arrname) Then
        For i = 0 To 100
            If name = arrname(i) Then
                getCode = arrcode(i)
                Exit Function
            End If
        Next
    End If
    getCode = ""
End FunctionPublic Function getH(str) '取电感值
    Dim tmp, unit
    If Len(str) > 0 Then
        str = LCase(Trim(str))
        unit = Right(str, 2)
        tmp = Left(str, Len(str) - 2)
        If unit = "uh" Then
            If Len(tmp) = 1 Then
                getH = "0" & tmp & "0"
            ElseIf Len(tmp) = 2 Then
                getH = tmp & "0"
            ElseIf Len(tmp) = 3 Then
                getH = Left(tmp, 2) & "1"
            ElseIf Len(tmp) = 4 Then
                getH = Left(tmp, 2) & "2"
            End If
        ElseIf unit = "mh" Then
            If Len(tmp) = 1 Then
                getH = tmp & "02"
            ElseIf Len(tmp) = 2 Then
                getH = tmp & "3"
            ElseIf Len(tmp) = 3 Then
                getH = Left(tmp, 2) & "4"
            ElseIf Len(tmp) = 4 Then
                getH = Left(tmp, 2) & "5"
            End If
        Else
            getH = ""
        End If
    Else
        getH = ""
    End If
End FunctionPublic Function getC(str) '取电容值
    Dim tmp, lstr, ltmp, l, r, m
    If Len(str) > 0 Then
        str = LCase(Trim(str))
        lstr = Len(str)
        l = Left(str, 1)
        r = Right(str, 1)
        m = Mid(str, 1, 1)
        If l = "p" Or l = "u" Then
            tmp = Right(str, Len(str) - 1)
            ltmp = Len(tmp)
            If l = "p" Then
                If ltmp = 1 Then
                    getC = "0" & tmp & "A"
                ElseIf ltmp = 2 Then
                    getC = tmp & "B"
                ElseIf ltmp = 3 Then
                    getC = Left(tmp, 2) & "B"
                ElseIf ltmp = 4 Then
                    getC = Left(tmp, 2) & "B"
                ElseIf ltmp = 5 Then
                    getC = Left(tmp, 2) & "B"
                End If
            ElseIf l = "u" Then
                If ltmp = 1 Then
                    getC = tmp & "5"
                ElseIf ltmp = 2 Then
                    getC = tmp & "4"
                ElseIf ltmp = 3 Then
                    getC = Left(tmp, 2) & "4"
                ElseIf ltmp = 4 Then
                    getC = Left(tmp, 2) & "4"
                ElseIf ltmp = 5 Then
                    getC = Left(tmp, 2) & "4"
                End If
            End If
        ElseIf r = "p" Or r = "u" Then
            tmp = Left(str, Len(str) - 1)
            ltmp = Len(tmp)
            If r = "p" Then
                If ltmp = 1 Then
                    getC = "0" & tmp & "0"
                ElseIf ltmp = 2 Then
                    getC = tmp & "0"
                ElseIf ltmp = 3 Then
                    getC = Left(tmp, 2) & "1"
                ElseIf ltmp = 4 Then
                    getC = Left(tmp, 2) & "2"
                ElseIf ltmp = 5 Then
                    getC = Left(tmp, 2) & "3"
                End If
            ElseIf r = "u" Then
                If ltmp = 1 Then
                    getC = tmp & "05"
                ElseIf ltmp = 2 Then
                    getC = tmp & "6"
                ElseIf ltmp = 3 Then
                    getC = Left(tmp, 2) & "7"
                ElseIf ltmp = 4 Then
                    getC = Left(tmp, 2) & "8"
                ElseIf ltmp = 5 Then
                    getC = Left(tmp, 2) & "9"
                End If
            End If
        ElseIf lstr = 3 Then
            tmp = Left(str, 1) & Right(str, 1)
            m = Right(Left(str, 2), 1)
            If m = "p" Then
                getC = tmp & "A"
            ElseIf m = "u" Then
                getC = tmp & "5"
            Else
                getC = str
            End If
        Else
            getC = ""
        End If
    Else
        getC = ""
    End If
End FunctionPublic Function getA(str)   '取电流2位有效
    If (Len(str) > 0) Then
        tmp = Left(str, Len(str) - 1)
        ltmp = Len(tmp)
        If ltmp = 1 Then
            getA = "0" & tmp
        ElseIf ltmp = 2 Then
            getA = tmp
        Else
            getA = ""
        End If
    Else
       getA = ""
    End If
End FunctionPublic Function getV(str)   '取电压3位有效
    If (Len(str) > 0) Then
        tmp = Left(str, Len(str) - 1)
        ltmp = Len(tmp)
        If ltmp = 1 Then
            getV = "00" & tmp
        ElseIf ltmp = 2 Then
            getV = "0" & tmp
        ElseIf ltmp = 3 Then
            getV = tmp
        Else
            getV = ""
        End If
    Else
       getV = ""
    End If
End Function