• Đánh số thứ tự bằng số La mã
  • Đánh số thứ tự bằng số La mã

    longkd_bvct@yahoo.com.vn > 21-08-21, 10:14 AM

    Mọi người cho em hỏi có cách nào đánh số thứ tự trong report bằng số la mã hay không.
  • RE: Đánh số thứ tự bằng số La mã

    tranthanhan1962 > 21-08-21, 10:52 AM

    Về cơ bản thì không có. Nhưng bạn có thể tạo Running Sum bằng chữ số Arab sau ̣đó dùng hàm LAMA dưới đây để biên dịch thành chữ số la mã.
    Hàm này tôi chỉ viết đến 40. Nếu cần bạn có thể tự phát triển thêm. Nhưng tôi nghĩ 40 cũng đã thừa với việc đánh số la mã

    Function LAMA(SOTT As Integer)
    Dim TTLAMA As String
    On Error GoTo BiLoi
    Select Case SOTT
    Case 1
    TTLAMA = "I"
    Case 2
    TTLAMA = "II"
    Case 3
    TTLAMA = "III"
    Case 4
    TTLAMA = "IV"
    Case 5
    TTLAMA = "V"
    Case 6
    TTLAMA = "VI"
    Case 7
    TTLAMA = "VII"
    Case 8
    TTLAMA = "VIII"
    Case 9
    TTLAMA = "IX"
    Case 10
    TTLAMA = "X"
    Case 11
    TTLAMA = "XI"
    Case 12
    TTLAMA = "XII"
    Case 13
    TTLAMA = "XIII"
    Case 14
    TTLAMA = "XIV"
    Case 15
    TTLAMA = "XV"
    Case 16
    TTLAMA = "XVI"
    Case 17
    TTLAMA = "XVII"
    Case 18
    TTLAMA = "XVIII"
    Case 19
    TTLAMA = "XIX"
    Case 20
    TTLAMA = "XX"
    Case 21
    TTLAMA = "XXI"
    Case 22
    TTLAMA = "XXII"
    Case 23
    TTLAMA = "XXIII"
    Case 24
    TTLAMA = "XXIV"
    Case 25
    TTLAMA = "XXV"
    Case 26
    TTLAMA = "XXVI"
    Case 27
    TTLAMA = "XXVII"
    Case 28
    TTLAMA = "XXVIII"
    Case 29
    TTLAMA = "XXIX"
    Case 30
    TTLAMA = "XXX"
    Case 31
    TTLAMA = "XXXI"
    Case 32
    TTLAMA = "XXXII"
    Case 33
    TTLAMA = "XXXIII"
    Case 34
    TTLAMA = "XXXIV"
    Case 35
    TTLAMA = "XXXV"
    Case 36
    TTLAMA = "XXXVI"
    Case 37
    TTLAMA = "XXXVII"
    Case 38
    TTLAMA = "XXXVIII"
    Case 39
    TTLAMA = "XXXIX"
    Case 40
    TTLAMA = "XL"
    End Select
    LAMA = TTLAMA
    BiLoi:
    End Function
  • RE: Đánh số thứ tự bằng số La mã

    longkd_bvct@yahoo.com.vn > 21-08-21, 11:25 AM

    Dạ em cám ơn anh nhé
  • RE: Đánh số thứ tự bằng số La mã

    paulsteigel > 21-08-21, 11:08 PM

    (21-08-21, 11:25 AM)longkd_bvct@yahoo.com.vn Đã viết: Dạ em cám ơn anh nhé

    Có một đoạn code ngắn mình thấy cũng khá tiện để dùng của một tay Tây bạn có thể xem. Mấy dạng đánh số la mã Roman này, nghĩ cũng nhọc đầu phết, cụ tranthanhnhan1962 cũng khổ công nghĩ, quả là nhiệt tình. Thường với mấy cái này em lười nghĩ mà hay đi tìm xem đã ai viết chửa? nếu chửa có mà nó không hữu dụng mấy thì em né luôn. Bản thân em giờ mà cho đánh số la mã đến 20 trở lên là em tèo! 
    Mã:
    ' Formats a number as a roman numeral.
    ' Author: Christian d'Heureuse (www.source-code.biz)
    Public Function FormatRoman(ByVal n As Integer) As String
      If n = 0 Then FormatRoman = "0": Exit Function
          ' There is no roman symbol for 0, but we don't want to return an empty string.
      Const r = "IVXLCDM"              ' roman symbols
      Dim i As Integer: i = Abs(n)
      Dim s As String, p As Integer
      For p = 1 To 5 Step 2
          Dim d As Integer: d = i Mod 10: i = i \ 10
          Select Case d                ' format a decimal digit
            Case 0 To 3: s = String(d, Mid(r, p, 1)) & s
            Case 4:      s = Mid(r, p, 2) & s
            Case 5 To 8: s = Mid(r, p + 1, 1) & String(d - 5, Mid(r, p, 1)) & s
            Case 9:      s = Mid(r, p, 1) & Mid(r, p + 2, 1) & s
            End Select
          Next
      s = String(i, "M") & s          ' format thousands
      If n < 0 Then s = "-" & s        ' insert sign if negative (non-standard)
      FormatRoman = s
    End Function
  • RE: Đánh số thứ tự bằng số La mã

    tranthanhan1962 > 22-08-21, 10:36 AM

    Chẳng qua hồi đó còn là cán bộ bàn giấy. Làm mấy báo cáo nghiệp vụ, chuyên đề, có cái vụ đánh số la mã. Mà code này cũng có gì đâu. Dịch trực tiếp mà copy, paste, rồi sửa thôi. Khoản 10' là xong