devxlogo

Add a New Number Format

Add a New Number Format

A client needed the numbers to show up in certain data files in the “x100” format to accommodate interchanging data with a legacy system. That is, if the number is “23.56,” it shows up as “2356,” and “23” becomes “2300.” Because I didn’t want to create a special case throughout my code to manage this, and the VB Format function doesn’t support such a format, I subclassed the Format function and added the new format myself:

 Public Function Format(Expression As Variant, Optional _	sFormat As Variant, Optional FirstDayOfWeek As _	Variant, Optional FirstWeekOfYear As Variant) As String	If IsMissing(sFormat) Then		Format = VBA.Format(Expression)	ElseIf sFormat = "x100" Then		' handle the special x100 case		Expression = Expression * 100		Format = VBA.Format(Expression, "0.")		Format = Left$(Format, InStr(1, Format, ".") - 1)	Else		' wasn't my special format, so pass through to the 		' real format function		If IsMissing(FirstWeekOfYear) And _			IsMissing(FirstDayOfWeek) Then			Format = VBA.Format(Expression:=Expression, _				Format:=sFormat)		ElseIf IsMissing(FirstDayOfWeek) Then			Format = VBA.Format(Expression:=Expression, _				FirstWeekOfYear:=FirstWeekOfYear)		ElseIf IsMissing(FirstWeekOfYear) Then			Format = VBA.Format(Expression:=Expression, _				FirstDayOfWeek:=FirstDayOfWeek)		End If	End IfEnd Function

This allows me to simply call the Format function as I normally would everywhere in my code, have my “x100” format, and still support all the normal Format parameters and options. Note the use of VBA.Format in the routine to reference the built-in format function.

See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist