title: Extracting data from one worksheet to another in excel
body: <p>Lets say we have these columns</p>
  
  <pre><code>Sarah    Smith     1234566 UK
  Homer    Simpson   3456677 USA
  Max      Power     4567932 Canada
  Meg      Griffin   5689321 USA
  Sarah    Smith   345677   USA
  </code></pre>
  
  <p>So I wanna exctract all data for one person be in a  worksheet, so Sarah Smith has her own worksheet that shows her info, homer simpson has his own that shows his info..
  <strong>I wrote this code, but when i run it starts each work but it adds a row on top of each worksheet!!! so for sarah smith work sheet it starts from row 2, for Homer Simpson starts from row 3. Max power starts from row 4?? Any idea why?? I want each sheet starts from row 1</strong></p>
  
  <pre><code>Private Sub CommandButton1_Click()
      Dim WorksheetsExists As Boolean, e
      Application.ScreenUpdating = False
      With Range("A1").CurrentRegion
          With .Offset(1).Columns(1)
              For Each e In Filter(.Parent.Evaluate("transpose(if(countif(offset(" &amp; _
                                                    .Address &amp; ",0,0,row(1:" &amp;     .Rows.Count &amp; "))," &amp; .Address &amp; ")=1," &amp; _
                                                    .Address &amp; ",char(2)))"), Chr(2), False)
                  .Offset(-1).AutoFilter 1, e
                  Range("A1").CurrentRegion.Offset(0, 0).Resize(.Rows.Count, 25).SpecialCells(12).Copy
                  On Error Resume Next
                  WorksheetExists = (Sheets(e).Name &lt;&gt; "")
                  If WorksheetExists = False Then
                      Sheets.Add(After:=Sheets(Sheets.Count)).Name = e
                      Sheets(e).Range("A" &amp; Sheets(e).Range("A" &amp; Rows.Count).End(xlUp).Row).Offset(1).PasteSpecial
                      On Error GoTo 0
                  Else
                      Sheets(e).Range("A" &amp; Sheets(e).Range("A" &amp; Rows.Count).End(xlUp).Row).Offset(1).PasteSpecial
                  End If
                  Sheets(e).Columns.AutoFit
              Next
          End With
          .AutoFilter
      End With
      Application.ScreenUpdating = False
  End Sub
  </code></pre>