Option Explicit
Public Function NtoC(ByVal sNum As String, Optional BITs As String = ",拾,佰,仟", Optional UNITs As String = ",万,亿,兆,万兆", Optional ByVal Yuan As String = "圆", Optional ByVal Jiao As String = "角", Optional ByVal Fen As String = "分") As String
If Val(Trim(sNum)) > 0 Then
  Dim sIntD, sDecD As String
  Dim i, iCount, j, iLength As Integer
  Dim lStartPos As Long
  Dim sBIT() As String
  Dim sUNIT() As String
  Dim sCents(2) As String
  sBIT = VBA.Split(BITs, ",")
  sUNIT = VBA.Split(UNITs, ",")
  sCents(0) = Fen
  sCents(1) = Jiao
  Dim temp As String
  If InStr(Trim(sNum), ".") > 0 Then
     temp = Left(Trim(sNum), InStr(Trim(sNum), ".") - 1)
  Else
     temp = Trim(sNum)
  End If
  iCount = IIf(Len(temp) Mod 4, Len(Trim(temp)) \ 4 + 1, Len(Trim(temp)) \ 4)
  lStartPos = 1
  For i = iCount To 1 Step -1
      If i = iCount And Len(Trim(temp)) Mod 4 <> 0 Then
         iLength = Len(Trim(temp)) Mod 4
      Else
         iLength = 4
      End If
      sIntD = Mid(Trim(temp), lStartPos, iLength)
      For j = 1 To Len(Trim(sIntD))
          If Val(Mid(sIntD, j, 1)) <> 0 Then
             NtoC = NtoC & Choose(Val(Mid(sIntD, j, 1)), "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖") & sBIT(Len(Trim(sIntD)) - j)
          Else
             If Val(Mid(sIntD, j + 1, 1)) <> 0 Then
                NtoC = NtoC & "零"
             End If
          End If
      Next j
      lStartPos = lStartPos + iLength
      If i < iCount Then
         If (Val(Mid(sIntD, Len(Trim(sIntD)), 1)) <> 0 Or Val(Mid(sIntD, Len(Trim(sIntD)) - 1, 1)) <> 0 Or Val(Mid(sIntD, Len(Trim(sIntD)) - 2, 1)) Or Val(Mid(sIntD, Len(Trim(sIntD)) - 3, 1)) <> 0) Then
            If i < UBound(sUNIT) + 1 Then
               NtoC = NtoC & sUNIT(i - 1)
            'Else
            '   NtoC = NtoC & sUNIT(i - 1)
            End If
         End If
      Else
         'If i < UBound(sUNIT) + 1 Then
            NtoC = NtoC & sUNIT(i - 1)
         'End If
      End If
  Next
  If Len(Trim(NtoC)) > 0 Then
     NtoC = NtoC & Yuan
  End If
  '小数
  If InStr(1, Trim(sNum), ".") <> 0 Then
     sDecD = Right(sNum, Len(Trim(sNum)) - InStr(1, Trim(sNum), "."))
     For i = 1 To Len(Trim(sDecD))
         If Val(Mid(Trim(sDecD), i, 1)) <> 0 Then
            NtoC = NtoC & Choose(Val(Mid(Trim(sDecD), i, 1)), "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖")
            NtoC = NtoC & sCents(2 - i)
            If i >= 2 Then
               Exit For
            End If
         Else
            If Len(Trim(NtoC)) > 0 Then
               NtoC = NtoC & "零"
            End If
         End If
     Next i
  Else
     NtoC = NtoC & "整"
  End If
Else
  NtoC = "零" & Yuan
End If
End FunctionPrivate Sub Command1_Click()
VBA.MsgBox NtoC("1260340.35")
End Sub