Go Back   Cựu Học Sinh Lê Quý Đôn - Long An > :: Góc Học Tập :: > Tin học > Phần mềm > OpenOffice.org

OpenOffice.org Thảo luận về OO.o

Hàm đổi Số sang Chữ trong OpenOffice.org Calc

Hàm đổi Số sang Chữ trong OpenOffice.org Calc

this thread has 0 replies and has been viewed 11811 times

Gởi Ðề Tài Mới Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 21-08-2008, 10:34 AM   #1
Hồ sơ
jubei_ludu
Senior Member
 
jubei_ludu's Avatar
 
Tham gia ngày: Jul 2008
Số bài viết: 196
Tiền: 25
Thanks: 17
Thanked 63 Times in 41 Posts
jubei_ludu is on a distinguished road
Default Hàm đổi Số sang Chữ trong OpenOffice.org Calc

Ở đây hẳn các bạn đã quá quen thuọc việc sử dụng các hàm viết bằng VB Script trong Excel để hỗ trợ trong công việc văn phòng.


Hôm nay tôi xin giới thiệu 2 hàm dùng trong Open Office.org Calc (Bộ phần mềm văn phòng mã nguồn mở - miễn phí 100%).


Hai hàm này có chức năng ĐỔI SỐ -> CHỮ (ĐỒNG VIỆT NAM và DOLLAR)


Code:
Function VND(BaoNhieu)
  Dim KetQua, SoTien, Nhom, Chu, Dich, S1, S2, S3 As String
  Dim I, J, ViTri As integer , S As double
  Dim Hang, Doc, Dem
  If BaoNhieu = 0 Then
    KetQua = "Không đồng"
  Else
    If Abs(BaoNhieu) > 999999999999.99 Then
      KetQua = "Số quá lớn"
    Else
      If BaoNhieu < 0 Then
        KetQua = "triệu" & Space(1)
      Else
        KetQua = Space(0)
      End If
      SoTien = Format(Abs(BaoNhieu), "###########0.00")
      SoTien = Right(Space(12) & SoTien, 15)
      Hang = Array("None", "trăm", "mươi", "nghìn")
      Doc = Array("None", "tỷ", "triệu", "ngàn", "đồng", "xu")
      Dem = Array("None", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín")
      For I = 1 To 5
        Nhom = Mid(SoTien, I * 3 - 2, 3)
        If Nhom <> Space(3) Then
          Select Case Nhom
            Case "000"
              If I = 4 Then
                Chu = "ngàn" & Space(1)
              Else
                Chu = Space(0)
              End If
            Case ".00"
              Chu = "chẵn"
            Case Else
              S1 = Left(Nhom, 1)
              S2 = Mid(Nhom, 2, 1)
              S3 = Right(Nhom, 1)
              Chu = Space(0)
              Hang(3) = Doc(I)
              For J = 1 To 3
                Dich = Space(0)
                S = Val(Mid(Nhom, J, 1))
                If S > 0 Then
                  Dich = Dem(S) & Space(1) & Hang(J) & Space(1)
                End If
                Select Case J
                  Case 2 And S = 1
                    Dich = "mười" & Space(1)
                  Case 3 And S = 0 And Nhom <> Space(2) & "0"
                    Dich = Hang(J) & Space(1)
                  Case 3 And S = 5 And S2 <> Space(1) And S2 <> "0"
                    Dich = "l" & Mid(Dich, 2)
                  Case 2 And S = 0 And S3 <> "0"
                  If (S1 >= "1" And S1 <= "9") Or (S1 = "0" And I = 4) Then
                    Dich = "lẻ" & Space(1)
                  End If
                 End Select
                 Chu = Chu & Dich
              Next J
            End Select
            ViTri = InStr(1, Chu, "mười một", 1)
            If ViTri > 0 Then Mid(Chu, ViTri, 9) = "mười một"
            KetQua = KetQua & Chu
          End If
        Next I
      End If
    End If
  VND = UCase(Left(KetQua, 1)) & Mid(KetQua, 2)
  End Function

Function USD(AMT)
 Dim ToRead, Chuoi, Nhom, Word As String
  Dim I, J As integer , W, X, Y, Z As Double
  Dim DonVi, HChuc, Khung
  If AMT = 0 Then
    ToRead = "None"
  Else
    DonVi = Array("None", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen")
    HChuc = Array("None", "None", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety")
    Khung = Array("None", "billion", "million", "thousand", "dollars", "cents")
    If AMT < 0 Then
      ToRead = "Minus" & Space(1)
    Else
      ToRead = Space(0)
    End If
    Chuoi = Format(Abs(AMT), "############.00")
    Chuoi = Right(Space(12) & Chuoi, 15)
    For I = 1 To 5
      Nhom = Mid(Chuoi, I * 3 - 2, 3)
      If Nhom <> Space(3) Then
        Select Case Nhom
        Case "000"
          If I = 4 And Abs(AMT) > 1 Then
            Word = "dollars" & Space(1)
          Else
            Word = Space(0)
          End If
        Case ".00"
          Word = "only"
        Case Else
          X = Val(Left(Nhom, 1))
          Y = Val(Mid(Nhom, 2, 1))
          Z = Val(Right(Nhom, 1))
          W = Val(Right(Nhom, 2))
          If X = 0 Then
            Word = Space(0)
          Else
            Word = DonVi(X) & Space(1) & "hundred" & Space(1)
            If W > 0 And W < 21 Then
              Word = Word & "and" & Space(1)
            End If
          End If
          If I = 5 And Abs(AMT) > 1 Then
            Word = "and" & Space(1) & Word
          End If
          If W < 20 And W > 0 Then
            Word = Word & DonVi(W) & Space(1)
          Else
            If W >= 20 Then
              Word = Word & HChuc(Y) & Space(1)
              If Z > 0 Then
                Word = Word & DonVi(Z) & Space(1)
              End If
            End If
          End If
          Word = Word & Khung(I) & Space(1)
        End Select
        ToRead = ToRead & Word
      End If
    Next I
  End If
  USD = UCase(Left(ToRead, 1)) & Mid(ToRead, 2)
End Function
Nguồn: [Đăng nhập để xem liên kết. ]
jubei_ludu is offline   Trả Lời Với Trích Dẫn
Đã có thành viên gửi lời cám ơn đến jubei_ludu vì bạn đã đăng bài:
myhanh (21-08-2008)
Trả lời



Quyền Sử Dụng Ở Diễn Ðàn
Bạn không được quyền gởi bài
Bạn không được quyền gởi trả lời
Bạn không được quyền gởi kèm file
Bạn không được quyền sửa bài

vB code đang Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Chuyển đến

Chủ đề tương tự
Ðề tài Người Gởi Chuyên mục Trả lời Bài mới gởi
Rối loạn giấc ngủ peanux Chia sẻ kinh nghiệm 0 11-03-2008 08:45 AM
Chúng Ta trong Thế giới phẳng Gem ..:: Thảo luận nghiêm túc ::.. 2 09-09-2007 04:44 PM
Bức Họa Da Người LeGiang ..:: CLB Văn Thơ ::.. 4 26-06-2007 02:15 PM
Ufo VÀ SỰ SỐng NgoÀi TrÁi ĐẤt LeGiang Thiên văn học 0 25-05-2007 11:13 AM


Website sử dụng phần mềm vBulletin phiên bản 3.6.8
do Công ty TNHH Jelsoft giữ bản quyền từ 2000 - 2024.
Múi giờ GMT +7. Hiện tại là 03:36 PM.

Hội CHS Lê Quý Đôn-Long An giữ bản quyền nội dung của website này

Tự động[F9]TELEX VNI VIQR VIQR* TắtKiểm chính tảDấu cũ
phan mem quan ly ban hang | thuê vps