title: VBA - copy area and paste area aren't the same size error?
body: <p>Good Day! I have these code below which it gives me an error of "We can't paste because copy area and paste area arent the same size".. Please help what is wrong with these code... :(</p>
  
  <pre><code>Option Explicit
  
  Sub CopyRangeFromMultiWorksheets()
  Dim sh As Worksheet
  Dim DestSh As Worksheet
  Dim Last As Long
  Dim CopyRng As Range
  
  With Application
      .ScreenUpdating = False
      .EnableEvents = False
  End With
  
  Application.DisplayAlerts = False
  On Error Resume Next
  ActiveWorkbook.Worksheets("RDBMergeSheet").Delete
  On Error GoTo 0
  Application.DisplayAlerts = True
  
  
  Set DestSh = ActiveWorkbook.Worksheets.Add
  DestSh.Name = "RDBMergeSheet"
  
  For Each sh In ActiveWorkbook.Worksheets
  
      If IsError(Application.Match(sh.Name, _
                                   Array(DestSh.Name, "Information"), 0)) Then
  
          Last = LastRow(DestSh)
  
          If sh.Name = "Sheet1" Then
              Set CopyRng = sh.Range("A:G")
          End If
  
          If sh.Name = "Sheet2" Then
              Set CopyRng = sh.Range("B:G")
          End If
  
          If sh.Name = "Sheet3" Then
              Set CopyRng = sh.Range("C:G")
          End If
  
          CopyRng.Copy
          With DestSh.Cells(Last + 1, "A")
              .PasteSpecial xlPasteValues
              .PasteSpecial xlPasteFormats
              Application.CutCopyMode = False
          End With
  
      End If
  Next
  
   ExitTheSub:
  
  Application.GoTo DestSh.Cells(1)
  
  DestSh.Columns.AutoFit
  
  With Application
      .ScreenUpdating = True
      .EnableEvents = True
  End With
   End Sub
  </code></pre>
  
  <p>Below is my Function</p>
  
  <pre><code>Option Explicit
  
  Function LastRow(sh As Worksheet)
  On Error Resume Next
  LastRow = sh.Cells.Find(what:="*", _
                          After:=sh.Range("A1"), _
                          Lookat:=xlPart, _
                          LookIn:=xlFormulas, _
                          SearchOrder:=xlByRows, _
                          SearchDirection:=xlPrevious, _
                          MatchCase:=False).Row
  On Error GoTo 0
  End Function
  
  
  Function LastCol(sh As Worksheet)
  On Error Resume Next
  LastCol = sh.Cells.Find(what:="*", _
                          After:=sh.Range("A1"), _
                          Lookat:=xlPart, _
                          LookIn:=xlFormulas, _
                          SearchOrder:=xlByColumns, _
                          SearchDirection:=xlPrevious, _
                          MatchCase:=False).Column
  On Error GoTo 0
  End Function
  </code></pre>