Нужная функция, для правильного представления числа в текстовом виде
Код:
Public Function fnNum2Word(ByVal inp As Long, ByVal fir As String, ByVal sec As String, ByVal many As String) As String
Dim tmp As String
tmp = Format$(inp, "000")
If Len(tmp) > 2 Then tmp = Mid(tmp, Len(tmp) - 1, 2)
Select Case Val(Mid(tmp, 1, 1) & "")
Case 1
Select Case Val(Mid(tmp, 2, 1) & "")
Case 0 - 9
fnNum2Word = many
End Select
Case 0, 2 To 9
Select Case Val(Mid(tmp, 2, 1) & "")
Case 1
fnNum2Word = fir
Case 2 To 4
fnNum2Word = sec
Case 0, 5 To 9
fnNum2Word = many
End Select
End Select
End Function
собственно функция выдающая в окно Immediate результат, который требуется по условиям поставленной задачи
Как вызвать окно Immediate
Код:
Sub CalculateBirthdayDiffs(ByVal fDate As String, ByVal mDate As String)
Dim yearDiff As Long
Dim monthDiff As Long
Dim dayDiff As Long
If IsDate(fDate) And IsDate(fDate) Then
If CDate(fDate) = CDate(mDate) Then
Debug.Print "Папа и мама - родились в один день"
ElseIf CDate(fDate) < CDate(mDate) Then
yearDiff = DateDiff("yyyy", fDate, mDate)
Debug.Print "Папа старше мамы на " & yearDiff & " " & fnNum2Word(yearDiff, "год", "года", "лет")
Else
yearDiff = DateDiff("yyyy", fDate, mDate)
Debug.Print "Папа младше мамы на " & yearDiff & " " & fnNum2Word(yearDiff, "год", "года", "лет")
End If
If Month(fDate) > Month(mDate) Then
monthDiff = Month(fDate) - Month(mDate)
Debug.Print "у мамы на " & monthDiff & " " & fnNum2Word(monthDiff, "месяц", "месяца", "месяцев") & " раньше день рождения"
ElseIf Month(fDate) < Month(mDate) Then
monthDiff = Month(mDate) - Month(fDate)
Debug.Print "у папы на " & monthDiff & " " & fnNum2Word(monthDiff, "месяц", "месяца", "месяцев") & " раньше день рождения"
End If
If Day(fDate) > Day(mDate) Then
dayDiff = Day(fDate) - Day(mDate)
Debug.Print "по дню у мамы день рождения раньше на " & dayDiff & " " & fnNum2Word(dayDiff, "день", "дня", "дней")
ElseIf Day(fDate) < Day(mDate) Then
dayDiff = Day(mDate) - Day(fDate)
Debug.Print "по дню у папы день рождения раньше на " & dayDiff & " " & fnNum2Word(dayDiff, "день", "дня", "дней")
End If
End If
End Sub
|