title: Why does my number to text code not work?
body: <p>This function is supposed to let you convert dollar and cent amounts to words with a formula, so 22.50 would read as Twenty-Two Dollars and Fifty Cents. The formula for this is =SpellNumber(A1)</p>
  
  <p>I seem to be having issues. I got this code straight from Microsoft's website so I do not understand why it would not work. I am quite new to vba and would appreciate some pointers to fix this.  Thank you in advance for your help!</p>
  
  <pre><code>     Option Explicit
  
  'Main Function
  
  Function SpellNumber(ByVal MyNumber)
  
  Dim Dollars, Cents, Temp
  
  Dim DecimalPlace, Count
  
  ReDim Place(9) As String
  
  Place(2) = " Thousand "
  
  Place(3) = " Million "
  
  Place(4) = " Billion "
  
  Place(5) = " Trillion "
  
  ' String representation of amount.
  
  MyNumber = Trim(Str(MyNumber))
  
  ' Position of decimal place 0 if none.
  
  DecimalPlace = InStr(MyNumber, ".")
  
  ' Convert cents and set MyNumber to dollar amount.
  
  If DecimalPlace &gt; 0 Then
  ' &lt;-- Edit: remove incorrect line break = underscore character --&gt;
  Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) &amp; _ "00", 2))
  
  MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
  
  End If
  
  Count = 1
  
  Do While MyNumber &lt;&gt; ""
  
  Temp = GetHundreds(Right(MyNumber, 3))
  
  If Temp &lt;&gt; "" Then Dollars = Temp &amp; Place(Count) &amp; Dollars
  
  If Len(MyNumber) &gt; 3 Then
  
  MyNumber = Left(MyNumber, Len(MyNumber) - 3)
  
  Else
  
  MyNumber = ""
  
  End If
  
  Count = Count + 1
  
  Loop
  
  Select Case Dollars
  
  Case ""
  
  Dollars = "No Dollars"
  
  Case "One"
  
  Dollars = "One Dollar"
  
  Case Else
  
  Dollars = Dollars &amp; " Dollars"
  
  End Select
  
  Select Case Cents
  
  Case ""
  
  Cents = " and No Cents"
  
  Case "One"
  
  Cents = " and One Cent"
  
  Case Else
  
  Cents = " and " &amp; Cents &amp; " Cents"
  
  End Select
  
  SpellNumber = Dollars &amp; Cents
  
  End Function
  
  
  ' Converts a number from 100-999 into text
  
  Function GetHundreds(ByVal MyNumber)
  
  Dim Result As String
  
  If Val(MyNumber) = 0 Then Exit Function
  
  MyNumber = Right("000" &amp; MyNumber, 3)
  
  ' Convert the hundreds place.
  
  If Mid(MyNumber, 1, 1) &lt;&gt; "0" Then
  
  Result = GetDigit(Mid(MyNumber, 1, 1)) &amp; " Hundred "
  
  End If
  
  ' Convert the tens and ones place.
  
  If Mid(MyNumber, 2, 1) &lt;&gt; "0" Then
  
  Result = Result &amp; GetTens(Mid(MyNumber, 2))
  
  Else
  
  Result = Result &amp; GetDigit(Mid(MyNumber, 3))
  
  End If
  
  GetHundreds = Result
  
  End Function
  
  
  ' Converts a number from 10 to 99 into text.
  
  
   Function GetTens(TensText)
  
  Dim Result As String
  
  Result = "" ' Null out the temporary function value.
  
  If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...
  
  Select Case Val(TensText)
  
  Case 10: Result = "Ten"
  
  Case 11: Result = "Eleven"
  
  Case 12: Result = "Twelve"
  
  Case 13: Result = "Thirteen"
  
  Case 14: Result = "Fourteen"
  
  Case 15: Result = "Fifteen"
  
  Case 16: Result = "Sixteen"
  
  Case 17: Result = "Seventeen"
  
  Case 18: Result = "Eighteen"
  
  Case 19: Result = "Nineteen"
  
  Case Else
  
  End Select
  
  Else ' If value between 20-99...
  
  Select Case Val(Left(TensText, 1))
  
  Case 2: Result = "Twenty "
  
  Case 3: Result = "Thirty "
  
   Case 4: Result = "Forty "
  
  Case 5: Result = "Fifty "
  
  Case 6: Result = "Sixty "
  
   Case 7: Result = "Seventy "
  
  Case 8: Result = "Eighty "
  
  Case 9: Result = "Ninety "
  
  Case Else
  
  End Select
  ' &lt;-- Edit incorrect line break --&gt;
  Result = Result &amp; GetDigit _
  
  (Right(TensText, 1)) ' Retrieve ones place. 
  
  End If
  
  GetTens = Result
  
  End Function
  
  
   ' Converts a number from 1 to 9 into text.
  
   Function GetDigit(Digit)
  
   Select Case Val(Digit)
  
  Case 1: GetDigit = "One"
  
  Case 2: GetDigit = "Two"
  
  Case 3: GetDigit = "Three"
  
  Case 4: GetDigit = "Four"
  
  Case 5: GetDigit = "Five"
  
  Case 6: GetDigit = "Six"
  
  Case 7: GetDigit = "Seven"
  
  Case 8: GetDigit = "Eight"
  
  Case 9: GetDigit = "Nine"
  
  Case Else: GetDigit = ""
  
  End Select
  
  End Function
  </code></pre>