title: excel inputbox vba cancel function
body: <p>I have a macro which is working well. But the issue I have is with the <em>InputBox</em>. The macro is running into errors when the user presses <strong>CANCEL</strong> or <strong>X</strong> out of the <em>InputBox</em>. What can I do to stop this from happening. If the user presses <strong>X</strong> or <strong>Cancel</strong> the process should end, ie. exit the sub.  My code is below:</p>
  
  <pre><code>Sub FindValues()    
      Dim LSearchRow As Integer
      Dim rw As Integer, cl As Range, LSearchValue As Long, LCopyToRow As Integer
      Dim iHowMany As Integer
      Dim aSearch(15) As Long
      Dim i As Integer
  
      ' clear the sheets before it runs so to accurate number of funds opend.
  
      Sheet2.Cells.ClearContents
      Sheets("tier 2").Cells.ClearContents
      Sheets("tier 3").Cells.ClearContents
      Sheets("tier 4").Cells.ClearContents
      Sheets("tier 5").Cells.ClearContents
  
      On Error GoTo Err_Execute
      FixC
      Sheet2.Cells.Clear
      Sheet1.Select
      iHowMany = 0
      LSearchValue = 99
  
      'this for the end user to input the required A/C to be searched
  
      Do While LSearchValue &lt;&gt; 0
          LSearchValue = InputBox("Please enter a value to search for. Enter a zero to indicate finished" &amp; _
      "entry.", "Enter Search value")
          If LSearchValue &lt;&gt; 0 Then
              iHowMany = iHowMany + 1
              If iHowMany &gt; 15 Then
                  MsgBox "You are limited to 15 search numbers.", vbOKOnly, "Limit reached"
                  iHowMany = 15
                  Exit Do
              End If
              aSearch(iHowMany) = LSearchValue
          End If
      Loop
  
      If iHowMany = 0 Then
          MsgBox "No selections entered.", vbOKOnly + vbCritical, "No Search data"
          Exit Sub
      End If
  
      LCopyToRow = 2
  
      For rw = 1 To 1555
          For Each cl In Range("D" &amp; rw &amp; ":M" &amp; rw)
          '------------------------------------------------
              For i = 1 To iHowMany
                  Debug.Print cl.Row &amp; vbTab &amp; cl.Column
                  LSearchValue = aSearch(i)
                  If cl = LSearchValue Then
                      cl.EntireRow.Copy
                      'Destination:=Worksheets("Sheet2")
                      '.Rows(LCopyToRow &amp; ":" &amp; LCopyToRow)
                      Sheets("Sheet2").Select
                      Rows(LCopyToRow &amp; ":" &amp; LCopyToRow).Select
                      'Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
                      Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
                         xlNone, SkipBlanks:=False, Transpose:=False
                      'Move counter to next row
                      LCopyToRow = LCopyToRow + 1
                      'Go back to Sheet1 to continue searching
                      Sheets("Sheet1").Select
                  End If
              Next i
              'LSearchRow = LSearchRow + 1
          Next cl
      Next rw
      'Position on cell A3
      'Application.CutCopyMode = False
      'Selection.Copy
      Sheets("Sheet2").Select
      Cells.Select
      Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
          SkipBlanks:=False, Transpose:=False
  
      Application.CutCopyMode = False
      Sheet2.Select
      MsgBox "All matching data has been copied."
  Exit Sub
  </code></pre>