title: Sorting range in ascending numerical order containing strings by vba excel
body: <p>i have a range containing the following strings:</p>
  
  <p>step_1, step_10, step_3, step_2</p>
  
  <p>using the following code</p>
  
  <pre><code>input_sh.Activate
  With ActiveSheet
      .Range("H2:H20").Select
      .Sort.SortFields.Clear
      .Sort.SortFields.Add Key:=Range("H2"), _
         SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers 'xlSortNormal
  With .Sort
          .SetRange Range("H2:H20")
          .Header = xlNo
          .MatchCase = False
          .Orientation = xlTopToBottom
          .SortMethod = xlPinYin
          .Apply
  End With
  </code></pre>
  
  <p>step_10, step_1, step_2, step_3</p>
  
  <p>but i would like to get</p>
  
  <p>step_1, step_2,step_3,step_10</p>