金额大写的计算方法

金额大写的计算方法

      实际应用中一般要用到金额大写转换,一般应符合财务及银行方面的要求。

      

Public Function Dxje(ByVal Xxje As DecimalByVal Bhxx As BooleanAs String
        
Dim n As Long
        
Dim aDJE As String
        
Dim aXJE As String
        
Dim AA(12As String
        
Dim A As String = ""
        
Dim B As String = ""
        
On Error Resume Next
        Xxje 
= Math.Round(Xxje * 100/ 100
        aXJE 
= "" & Format(Xxje * 100"0")
        
For n = 1 To Len(aXJE)
            AA(n) 
= Mid(aXJE, Len(aXJE) - (n - 1), 1)
        
Next n
        
For n = Len(aXJE) + 1 To 12
            AA(n) 
= ""
        
Next n
        aXJE 
= "" & Format(Xxje, "0.00")
        AA(
0= "0"
        aDJE 
= ""
        
For n = 12 To 1 Step -1
            
Select Case AA(n)
                
Case ""
                    A 
= ""
                
Case ""
                    A 
= ""
                
Case "0"
                    
If AA(n - 1= "0" Or n = 3 Or n = 7 Or n = 11 Then
                        A 
= ""
                    
Else
                        A 
= ""
                    
End If
                
Case "1"
                    A 
= ""
                
Case "2"
                    A 
= ""
                
Case "3"
                    A 
= ""
                
Case "4"
                    A 
= ""
                
Case "5"
                    A 
= ""
                
Case "6"
                    A 
= ""
                
Case "7"
                    A 
= ""
                
Case "8"
                    A 
= ""
                
Case "9"
                    A 
= ""
            
End Select
            aDJE 
= aDJE & A
            
If A <> "" And A <> "" Then
                
Select Case n
                    
Case 12
                        B 
= ""
                    
Case 11
                        B 
= "亿"
                    
Case 10
                        B 
= ""
                    
Case 9
                        B 
= ""
                    
Case 8
                        B 
= ""
                    
Case 7
                        B 
= ""
                    
Case 6
                        B 
= ""
                    
Case 5
                        B 
= ""
                    
Case 4
                        B 
= ""
                    
Case 3
                        B 
= ""
                    
Case 2
                        B 
= ""
                    
Case 1
                        B 
= ""
                
End Select
            
Else
                B 
= ""
            
End If
            
If n = 11 And aDJE <> "" Then
                
If AA(n) = "0" And AA(n - 1<> "0" Then
                    B 
= "亿零"
                
Else
                    B 
= "亿"
                
End If
            
End If
            
If n = 7 And aDJE <> "" And Microsoft.VisualBasic.Right(aDJE, 1<> "亿" Then
                
If AA(n) = "0" And AA(n - 1<> "0" Then
                    B 
= "万零"
                
Else
                    B 
= ""
                
End If
            
End If
            
If n = 7 And aDJE <> "" And Microsoft.VisualBasic.Right(aDJE, 1= "亿" And AA(6<> "0" Then
                B 
= ""
            
End If
            
If n = 3 And aDJE <> "" Then
                
If AA(n) = "0" And AA(n - 1<> "0" Then
                    B 
= "元零"
                
Else
                    B 
= ""
                
End If
            
End If
            aDJE 
= aDJE & B
        
Next n
        
If Microsoft.VisualBasic.Right(aDJE, 1= "" Then
            aDJE 
= Microsoft.VisualBasic.Left(aDJE, Len(aDJE) - 1)
        
End If
        
If Microsoft.VisualBasic.Right(aDJE, 1<> "" Then
            aDJE 
= aDJE & ""
        
End If
        
If Bhxx Then
            Dxje 
= aDJE & "   " & aXJE
        
Else
            Dxje 
= aDJE
        
End If
    
End Function

      上述代码供参考,实际应用时请自行测试无误后引用。

posted @ 2009-07-17 11:22  星河朗月  阅读(850)  评论(0编辑  收藏  举报