电子元器件编码
来源:百度文库 编辑:神马文学网 时间: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
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