⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 module1.bas

📁 When we buy something, we will get a paper with a number speller.
💻 BAS
字号:
Attribute VB_Name = "Module1"
Public SourceVal As String
Public SourceDec As String
Public MoneyVal As String
Public MoneyDec As String
Public Plural As String
Public NoCur As Boolean

Dim Ones(9) As String
Dim Tens(9) As String
Dim STens(19) As String
Const None = ""
Const Rat = "ratus "
Const Rib = "ribu "
Const Jut = "juta "
Const Mil = "miliar "
Const Tril = "triliun "

Dim Source As String
Dim Range As String
Dim One As String, Two As String, Three As String

Public Sub LoadMeFirst()
MoneyVal = "Rupiah"
MoneyDec = "Sen"
Dim i As Byte
For i = 0 To 9
    Select Case i
        Case 0: Ones(i) = "":                                          STens(i + 10) = "Sepuluh "
        Case 1: Ones(i) = "Se":                                   STens(i + 10) = "Sebelas "
        Case 2: Ones(i) = "Dua ":   Tens(i) = "Dua puluh ": STens(i + 10) = "Dua Belas "
        Case 3: Ones(i) = "Tiga ": Tens(i) = "Tiga puluh ":    STens(i + 10) = "Tiga belas "
        Case 4: Ones(i) = "Empat ":   Tens(i) = "Empat puluh ":    STens(i + 10) = "Empat belas "
        Case 5: Ones(i) = "Lima ":    Tens(i) = "Lima puluh ":      STens(i + 10) = "Lima belas "
        Case 6: Ones(i) = "Enam ":     Tens(i) = "Enam puluh ":      STens(i + 10) = "Enam belas "
        Case 7: Ones(i) = "Tujuh ":  Tens(i) = "Tujuh puluh ": STens(i + 10) = "Tujuh belas "
        Case 8: Ones(i) = "Delapan ":   Tens(i) = "Delapan puluh ":    STens(i + 10) = "Delapan belas "
        Case 9: Ones(i) = "Sembilan ":   Tens(i) = "Sembilan puluh ":    STens(i + 10) = "Sembilan belas "
    End Select
Next i
End Sub

Public Function Convert() As String
Dim WholeVal As String
Convert = "": Range = "": One = "": Two = "": Three = ""
Source = SourceVal
If Val(SourceVal) > 1 Then
    WholeVal = MoneyVal & Plural
Else
    WholeVal = MoneyVal
End If
Select Case Len(SourceVal)
    Case 0
        GoTo 1
    Case 1
        One = 1: Range = None: Convert = First
        If SourceVal = 0 Then Convert = "Zero "
    Case 2
        One = 1: Two = 2: Range = None: Convert = Second
    Case 3
        One = 1: Two = 2: Three = 3: Range = None: Convert = Third
    Case 4
        One = 4: Range = Rib: Convert = First
        One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
    Case 5
        One = 4: Two = 5: Range = Rib: Convert = Second
        One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
    Case 6
        One = 4: Two = 5: Three = 6: Range = Rib: Convert = Third
        One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
    Case 7
        One = 7: Range = Jut: Convert = First
        One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
        One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
    Case 8
        One = 7: Two = 8: Range = Jut: Convert = Second
        One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
        One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
    Case 9
        One = 7: Two = 8: Three = 9: Range = Jut: Convert = Third
        One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
        One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
    Case 10
        One = 10: Range = Jut: Convert = First
        One = 7: Two = 8: Three = 9: Range = Jut: Convert = Convert & Third
        One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
        One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
    Case 11
        One = 10: Two = 11: Range = Jut: Convert = Second
        One = 7: Two = 8: Three = 9: Range = Jut: Convert = Convert & Third
        One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
        One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
    Case 12
        One = 10: Two = 11: Three = 12: Range = Jut: Convert = Third
        One = 7: Two = 8: Three = 9: Range = Jut: Convert = Convert & Third
        One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
        One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
    Case 13
        One = 13: Range = Tril: Convert = First
        One = 10: Two = 11: Three = 12: Range = Jut: Convert = Convert & Third
        One = 7: Two = 8: Three = 9: Range = Jut: Convert = Convert & Third
        One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
        One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
    Case 14
        One = 13: Two = 14: Range = Tril: Convert = Second
        One = 10: Two = 11: Three = 12: Range = Jut: Convert = Convert & Third
        One = 7: Two = 8: Three = 9: Range = Jut: Convert = Convert & Third
        One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
        One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
    Case 15
        One = 13: Two = 14: Three = 15: Range = Tril: Convert = Third
        One = 10: Two = 11: Three = 12: Range = Jut: Convert = Convert & Third
        One = 7: Two = 8: Three = 9: Range = Jut: Convert = Convert & Third
        One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
        One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
End Select
Convert = Convert & WholeVal

Exit Function
1:
Convert = ""
End Function

Public Function ConvertDec() As String
Dim DeciVal As String
ConvertDec = "": Range = "": One = "": Two = "": Three = ""
Source = SourceDec
If Val(SourceDec) > 1 Then
    DeciVal = MoneyDec & Plural
Else
    If Len(SourceDec) <> 1 Then
        DeciVal = MoneyDec
    Else
        DeciVal = MoneyDec & Plural
    End If
End If
If Val(SourceDec) = 0 Then GoTo 1
Select Case Len(SourceDec)
    Case 0
        GoTo 1
    Case 1
        If SourceDec <> 1 Then
            ConvertDec = Tens(SourceDec)
        Else
            ConvertDec = STens(SourceDec + 9)
        End If
    Case 2
        If Val(Left(SourceDec, 1)) = 0 Then
            One = 1: Range = None
            ConvertDec = First
        Else
            One = 1: Two = 2: Range = ""
            ConvertDec = Second
        End If
End Select

Dim Con As String
Con = ""
If SourceVal <> "" Then
    Con = " and "
    If NoCur = True Then Con = "and "
End If
ConvertDec = Con & ConvertDec & DeciVal

Exit Function
1:
ConvertDec = ""
End Function

Function First() As String
First = Ones(Val(Left(Right(Source, One), 1))) & Range
End Function

Function Second() As String
Select Case Val(Left(Right(Source, Two), 2))
    Case Is > 19
        Second = Tens(Val(Left(Right(Source, Two), 1))) & Ones(Val(Left(Right(Source, One), 1))) & Range
    Case Is < 20
        Second = STens(Val((Left(Right(Source, Two), 2)))) & Range
End Select
End Function

Function Third() As String
Select Case Val(Left(Right(Source, Three), 3))
    Case Is > 99
        Select Case Val(Left(Right(Source, Two), 2))
            Case Is > 9
                If Val(Left(Right(Source, Two), 2)) < 20 Then
                    Third = Ones(Left(Right(Source, Three), 1)) & Rat & STens(Val(Left(Right(Source, Two), 2))) & Range
                End If
                    Third = Ones(Left(Right(Source, Three), 1)) & Rat & Second
            Case Is < 10
                Third = Ones(Left(Right(Source, Three), 1)) & Rat & First
        End Select
    Case Is < 100
        Select Case Val(Left(Right(Source, Two), 2))
            Case Is > 19
                Third = Tens(Left(Right(Source, Two), 1)) & Ones(Left(Right(Source, One), 1)) & Range
            Case Is < 20
                If Val(Left(Right(Source, Two), 2)) > 9 Then
                    Third = STens(Val(Left(Right(Source, Two), 2))) & Range
                ElseIf Val(Left(Right(Source, Two), 2)) < 10 Then
                    Third = Ones(Val(Left(Right(Source, One), 1))) & Range
                        If Val(Left(Right(Source, Two), 2)) = 0 Then
                            Third = ""
                        End If
                End If
        End Select
End Select
End Function


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -