Juggler_IN
Active Member
- Joined
- Nov 19, 2014
- Messages
- 349
- Office Version
- 2003 or older
- Platform
- Windows
The below UDF is executing for 9 digit values and fails beyond 9 digits.
I have tried decimal data type but no luck. How I can make this UDF take higher digit values.
It works for x = 127,098,075 but fails for x = 50,428,677,591.
Any possible tweak?
I have tried decimal data type but no luck. How I can make this UDF take higher digit values.
It works for x = 127,098,075 but fails for x = 50,428,677,591.
VBA Code:
Public Function Units(x As Long) As String
Dim Seconds
Dim Minutes
Dim Hours
Dim Days
Dim DayString As String
Dim HourString As String
Dim MinuteString As String
Dim SecondString As String
Seconds = Int(x Mod 60)
Minutes = Int(x \ 60 Mod 60)
Hours = Int(x \ 3600 Mod 24)
Days = Int(x \ 3600 \ 24)
DayString = "d "
HourString = "h "
MinuteString = "m "
SecondString = "s"
Select Case Days
Case 0
Units = Format(Hours, "0") & HourString & _
Format(Minutes, "0") & MinuteString & _
Format(Seconds, "0") & SecondString
Case Else
Units = Days & DayString & _
Format(Hours, "0") & HourString & Format _
(Minutes, "00") & MinuteString & _
Format(Seconds, "00") & SecondString
End Select
End Function
Any possible tweak?