Не рекомендуется добавлять "и" после сотен в числе.Однако, чтобы помочь вам, я изменил функцию, которую я разместил в https://codereview.stackexchange.com/questions/223615/very-simple-spell-number-to-words-001-to-999-in-vba, чтобы она добавляла «и».
Функция работает с числами от 001 до 999. Без дробей.Для чисел с дробями вам нужно разделить число и разобраться с каждой частью (целое число и дробная часть) отдельно;после разбиения легко добавить «и» перед дробью.
Вот оно.Я надеюсь, что это работает и заставляет вас начать
'-------------------------------------
Function Do999(ByVal ThreeDigits) As String
'-------------------------------------
'Spells numbers from 001 to 999 to Words
'Mohsen Alyafei 17 Oct 2018
'Modified to add "and" by Mohsen Alyfei 07 July 2019
'On Entry: ThreeDigits 3 digit number 001 to 999
'On Exit : String of number in English words
'-----------------------------------------
Dim Ones(), Tens(), Separator As String, h As String, t As String, N1 As Integer, N2 As Integer, annd As String
Ones = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")
Tens = Array("", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
ThreeDigits = Right("000" & ThreeDigits, 3) 'Align to 3 digits
annd = " " 'added to add "and"
If Right(ThreeDigits, 1) <> "0" Then Separator = "-"
N1 = Left(ThreeDigits, 1): N2 = Right(ThreeDigits, 2)
If N2 > 19 Then t = Tens(Val(Mid(ThreeDigits, 2, 1))) & Separator & Ones(Val(Right(ThreeDigits, 1))) Else t = Ones(N2)
If N1 > 0 Then
h = Ones(N1) & " Hundred"
If N2 > 0 Then annd = " and " 'added to add "and"
End If
Do999 = Trim(h & annd & t) 'var "annd" is normally a space
End Function