驗證統一編號是否正確的Function

驗證統一編號是否正確的Function

 


  Dim i As Integer

  Dim a1 As Integer
  Dim a2 As Integer
  Dim a3 As Integer
  Dim a4 As Integer
  Dim a5 As Integer

  Dim b1 As Integer
  Dim b2 As Integer
  Dim b3 As Integer
  Dim b4 As Integer
  Dim b5 As Integer

  Dim c1 As Integer
  Dim c2 As Integer
  Dim c3 As Integer
  Dim c4 As Integer

  Dim d1 As Integer
  Dim d2 As Integer
  Dim d3 As Integer
  Dim d4 As Integer
  Dim d5 As Integer
  Dim d6 As Integer
  Dim d7 As Integer
  Dim cd8 As Integer


  '判斷長度
  If Len(vstrTaxID) <> 8 Then
      Return False
  End If

  '判斷字元
  For i = 1 To 8
    If InStr("0123456789", Mid(vstrTaxID, i, 1)) = 0 Then
      Return False
    End If
  Next

  '設定變數
  d1 = CInt(Mid(vstrTaxID, 1, 1))
  d2 = CInt(Mid(vstrTaxID, 2, 1))
  d3 = CInt(Mid(vstrTaxID, 3, 1))
  d4 = CInt(Mid(vstrTaxID, 4, 1))
  d5 = CInt(Mid(vstrTaxID, 5, 1))
  d6 = CInt(Mid(vstrTaxID, 6, 1))
  d7 = CInt(Mid(vstrTaxID, 7, 1))
  cd8 = CInt(Mid(vstrTaxID, 8, 1))

  c1 = d1
  c2 = d3
  c3 = d5
  c4 = cd8

  a1 = Int((d2 * 2) / 10)
  b1 = (d2 * 2) Mod 10

  a2 = Int((d4 * 2) / 10)
  b2 = (d4 * 2) Mod 10

  a3 = Int((d6 * 2) / 10)
  b3 = (d6 * 2) Mod 10

  a4 = Int((d7 * 4) / 10)
  b4 = (d7 * 4) Mod 10

  a5 = Int((a4 + b4) / 10)
  b5 = (a4 + b4) Mod 10

  '計算公式
  If (a1 + b1 + c1 + a2 + b2 + c2 + a3 + b3 + c3 + a4 + b4 + c4) Mod 10 = 0 Then
        Return True
  End If

  If d7 = 7 Then
        If (a1 + b1 + c1 + a2 + b2 + c2 + a3 + b3 + c3 + a5 + c4) Mod 10 = 0 Then
            Return True
        End If
  End If

  Return False
End Function

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^