锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

VBA 贴片电阻名称转换

时间:2023-01-23 20:30:00 贴片电阻5k1电阻649e贴片电阻国巨电阻ac0402fr国巨贴片网络电阻060320k贴片电阻贴片电阻62rc

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

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章