'*******************************************************************************
'Description : Pads a number with zeroes on the left, according to the expected maximum length of the numbers in the list. '
'Purpose : To keep a number list sorted properly, as with a file list (001, 002,..., 010, and not 1, 10, 11,..., 2, 20). '
'Arguments : intCurrentNum (the current number to be padded)
'intMaxNumInList (the top number in the list)
'Note: The arguments are always taken in absolute values
'Returns : The padded intCurrentNum (for example, If 1 and 9999 are sent to the function, the result will be 0001) '
'*******************************************************************************
Public Function PadNumber(ByVal intCurrentNum, ByVal intMaxNumInList)
'Validates the arguments - if invalid then it returns the value as is
If (Not IsNumeric(intCurrentNum) Or Not IsNumeric(intMaxNumInList)) Then
PadNumber = intCurrentNum
Exit Function
End If
If (Abs(intCurrentNum) >= Abs(intMaxNumInList)) Then
PadNumber = intCurrentNum
Exit Function
End If
PadNumber = String(len(CStr(Abs(intMaxNumInList)))-len(CStr(Abs(intCurrentNum))), "0") _
& CStr(Abs(intCurrentNum))
End Function
'*******************************************************************************
'Msgbox PadNumber(4, 34567) 'Returns 00004
'Msgbox PadNumber(-4, 34567) 'Returns 00004
'Msgbox PadNumber(4, -34567) 'Returns 00004
'Msgbox PadNumber(34567, 4) 'Returns 34567
'Msgbox PadNumber(4, 9) 'Returns 4
'Msgbox PadNumber("Hello", 9999) 'Returns Hello