ваш код слишком ограничен, чтобы быть уверенным в 100% правильном ответе, так как мы не видим, как вы определили свои переменные.
Однако, если они правильно определены, лучше использовать это:
Dim ws as worksheet
Set ws = wb1.Sheets("MainSheet")
' Range goes from columns A to H with mainrow and LastRow as variable rows
ws.Range(ws.Cells(mainrow, 1), ws.Cells(LastRow, 8)).Value = sh.Range(sh.Cells(mainrow, 1), sh.Cells(LastRow, 8)).Value
вместо копирования-вставки.
Кроме того, убедитесь, что mainrow и LastRow определены правильно. Если вы сомневаетесь, добавьте эту часть своего кода в отредактированный вопрос, чтобы мы могли взглянуть на него.