Val Function

See Also39UDGX5              Example103OSX2>Low

Returns the numeric value of a string of characters.




The argument stringexpression is a sequence of characters that can be interpreted as a numeric value.  The Val function stops reading the string at the first character that it cannot recognize as part of a number.  Val also strips blanks, tabs, and line feeds from the argument string.  For example, the following returns the value 1615198:

   Val("    1615 198th Street N.E.")


Symbols and characters often considered part of a numeric value, such as the dollar sign and commas, are not recognized by Val as numeric.  The Val function does recognize the radix prefixes &O (for octal) and &H (for hexadecimal).  In the code below, Val returns the decimal value -1 for the hexadecimal value shown:



The Val function always returns a Double.  If the result of the Val function is assigned to a variable, the Double returned by Val is forced into the data type3GYXY7 of the variable.


Tip     If the string expression1330R89 you want to convert to numbers contains only numbers, consider using one of the numeric data type conversion functions (CCur, CDbl, CInt, CLng, CSng, or CVar) to perform the conversion.  To convert a numeric value to a String or Variant8PHEAW3, you can use the Format, CStr, or CVar function.


Note   The usefulness of the Val function is all but eliminated if you use the Variant data type for your variables.  This is because conversion back and forth between strings and numbers is accomplished automatically.


See Also

Data Type Conversion Functions1JQNQGO

Format, Format$ Function1EQ2BPO

Str, Str$ FunctionLANSTR

Val Function Example

The example uses the Val function to determine if the first characters in a string are a number.  To try this example, paste the code into the Declarations section of a form.  Then press F5 and click the form.


Sub Form_Click ()

   Dim Msg                                     ' Declare variables.

   Dim Number As Double

   Number = Val(InputBox$("Enter a number"))   ' Get user input.

   Msg = "The number you entered is:" & Number

   MsgBox Msg                                  ' Display message.

End Sub