VBA 贴片电阻名称转换

VBA 贴片电阻名称转换

最近工作中遇到需要将SMT电阻厂家的品名转换成 常用SMD电阻的规格,收集了几家公司的命名规则,写了个函数,大家参考。目前只写入了 大毅(TA-I) ,ROHM,也可以自己增加平常使用品牌电阻进行转换。

Public Function ResistorCode(ResistorName As String) As String
Dim FrontChar As String
Dim Size As String
Dim R As String
Dim Grade As String
Dim RL As Integer
FrontChar = Left(ResistorName, 2)
If FrontChar = “MC” Then FrontChar = “MCR”
Select Case FrontChar
Case “RM” '大毅电阻(TA-I)
Grade = Mid(ResistorName, 5, 1)
Size = Mid(ResistorName, 3, 2)
Select Case Size
Case “02”
Size = “0603”
Case “04”
Size = “1005”
Case “06”
Size = “1608”
Case “10”
Size = “2012”
Case “12”
Size = “3216”
Case “13”
Size = “3226”
Case “20”
Size = “5025”
Case “25”
Size = “6432”
End Select

        Select Case Mid(ResistorName, 5, 1)
            Case "J", "G"
                temp = Right(ResistorName, 3)
                If Not temp Like "*R*" Then
                    temp = Left(temp, 2) * 10 ^ Right(temp, 1)
                    
                    Select Case temp
                        Case 0 To 999
                            
                        Case 999 To 10 ^ 6 - 1
                            temp = temp / 1000 & "K"
                        Case Else
                            temp = temp / 10 ^ 6 & "M"
                    End Select
                 Else
                    If Right(temp, 1) <> 0 Then
                        temp = Left(temp, 1) & "." & Right(temp, 1)
                    Else
                        temp = Left(temp, 1)
                    End If
                    
                End If
                
                    
            
            Case "F", "D", "B"
                temp = Right(ResistorName, 4)
                
                If Not temp Like "*R*" Then
                    temp = Left(temp, 3) * 10 ^ Right(temp, 1)
                    
                    Select Case temp
                        Case 0 To 999
                            
                        Case 999 To 10 ^ 6 - 1
                            temp = temp / 1000 & "K"
                        Case Else
                            temp = temp / 10 ^ 6 & "M"
                    End Select
                 Else
                    If Right(temp, 1) <> 0 Then
                        temp = Left(temp, 2) & "." & Right(temp, 1)
                    Else
                        temp = Left(temp, 2)
                    End If
                    
                End If
        
        End Select
        

Case "MCR"                           'ROHM 电阻(TA-I)
    FrontChar = Left(ResistorName, 6)
        Select Case FrontChar
        
            Case "MCR004"
                Size = "0402"
                Grade = Mid(ResistorName, 10, 1)
         
            Case "MCR006"
                Size = "0606"
                Grade = Mid(ResistorName, 10, 1)
               
            Case "MCR100"
                Size = "6432"
                Grade = Mid(ResistorName, 10, 1)
        
            Case "MCR01M"
                Size = "1005"
                Grade = Mid(ResistorName, 9, 1)
        
            Case "MCR03E"
                Size = "1608"
                Grade = Mid(ResistorName, 9, 1)
        
            Case "MCR10E"
                Size = "2012"
                Grade = Mid(ResistorName, 9, 1)
        
            Case "MCR18E"
                Size = "3216"
                Grade = Mid(ResistorName, 9, 1)
        
            Case "MCR25J"
                Size = "3225"
                Grade = Mid(ResistorName, 9, 1)
        
            Case "MCR50J"
                Size = "5025"
                Grade = Mid(ResistorName, 9, 1)
                
        End Select
        
        Select Case Grade
        
            Case "D", "F"
                temp = Right(ResistorName, 4)
                
                If Not temp Like "*R*" Then
                    temp = Left(temp, 3) * 10 ^ Right(temp, 1)
                    
                    Select Case temp
                        Case 0 To 999
                            
                        Case 999 To 10 ^ 6 - 1
                            temp = temp / 1000 & "K"
                        Case Else
                            temp = temp / 10 ^ 6 & "M"
                    End Select
                 Else
                    If Right(temp, 1) <> 0 Then
                        temp = Left(temp, 2) & "." & Right(temp, 1)
                    Else
                        temp = Left(temp, 2)
                    End If
                    
                End If
        
               
            Case "J"
                temp = Right(ResistorName, 3)
                If Not temp Like "*R*" Then
                    temp = Left(temp, 2) * 10 ^ Right(temp, 1)
                    
                    Select Case temp
                        Case 0 To 1000
                            
                        Case 1000 To 10 ^ 6 - 1
                            temp = temp / 1000 & "K"
                        Case Else
                            temp = temp / 10 ^ 6 & "M"
                    End Select
                 Else
                    If Right(temp, 1) <> 0 Then
                        temp = Left(temp, 1) & "." & Right(temp, 1)
                    Else
                        temp = Left(temp, 1)
                    End If
                    
                End If
                
                
        End Select
        
        
        
Case "RC"                        '国巨 电阻(TA-I) 阻值编码固定,无法直接取值,只显示电阻尺寸及等级

    FrontChar = Left(ResistorName, 6)
        
        Select Case FrontChar
        
            Case "RC0075"
                Size = "0302"
                Grade = Mid(ResistorName, 7, 1)
        
            Case "RC0100"
                Size = "0402"
                Grade = Mid(ResistorName, 7, 1)
         
            Case "RC0201"
                Size = "0603"
                Grade = Mid(ResistorName, 7, 1)
        
            Case "RC0402"
                Size = "1005"
                Grade = Mid(ResistorName, 7, 1)
        
            Case "RC0603"
                Size = "1608"
                Grade = Mid(ResistorName, 7, 1)
        
            Case "RC0805"
                Size = "2012"
                Grade = Mid(ResistorName, 7, 1)
         
            Case "RC1206"
                Size = "3216"
                Grade = Mid(ResistorName, 7, 1)
        
            Case "RC1210"
                Size = "3226"
                Grade = Mid(ResistorName, 7, 1)
        
            Case "RC1218"
                Size = "3246"
                Grade = Mid(ResistorName, 7, 1)
        
            Case "RC2010"
                Size = "5025"
                Grade = Mid(ResistorName, 7, 1)
        
            Case "RC2512"
                Size = "6432"
                Grade = Mid(ResistorName, 7, 1)

        End Select

End Select

ResistorCode = Size & Grade & temp

End Function

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值