21 lines
658 B
Plaintext
21 lines
658 B
Plaintext
Private Function ordinals() As Variant
|
|
ordinals = [{"th","st","nd","rd"}]
|
|
End Function
|
|
|
|
Private Function Nth(n As Variant, Optional apostrophe As Boolean = False) As String
|
|
Dim mod10 As Integer: mod10 = n Mod 10 + 1
|
|
If mod10 > 4 Or n Mod 100 = mod10 + 9 Then mod10 = 1
|
|
Nth = CStr(n) & String$(Val(-apostrophe), "'") & ordinals()(mod10)
|
|
End Function
|
|
|
|
Public Sub main()
|
|
Ranges = [{0,25;250,265;1000,1025}]
|
|
For i = 1 To UBound(Ranges)
|
|
For j = Ranges(i, 1) To Ranges(i, 2)
|
|
If j Mod 10 = 0 Then Debug.Print
|
|
Debug.Print Format(Nth(j, i = 2), "@@@@@@@");
|
|
Next j
|
|
Debug.Print
|
|
Next i
|
|
End Sub
|