Я пытаюсь собрать что-то вместе, где оно будет выглядеть в диапазоне столбцов, скопировать этот столбец (минус 2 строки заголовков), а затем вставить его в Sheet2 под последней использованной строкой.Проблема возникает, когда нечего копировать из диапазона в sheet1.Я думал о выражении If, используя счетчик, но я подумал, что должен быть лучший способ сделать это.Вот то, что у меня есть сейчас (извините, это немного грязно).
Sub CopyUsedRanges()
Dim lrow As Long
Dim sh As Worksheet
Dim rng As Range
Set sh = Worksheets("Sheet1")
On Error Resume Next
'First
lrow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
Set rng = sh.UsedRange.Range("A3:C" & lrow)
Set rng = rng.Copy
Worksheets("Sheet2").Activate
Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
'Second
Worksheets("Sheet1").Activate
lrow = ActiveSheet.Cells(Rows.Count, "E").End(xlUp).Row
Set rng = sh.UsedRange.Range("E3:G" & lrow)
Set rng = rng.Copy
Worksheets("Sheet2").Activate
Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
'Third
Worksheets("Sheet1").Activate
lrow = ActiveSheet.Cells(Rows.Count, "I").End(xlUp).Row
Set rng = sh.UsedRange.Range("I3:K" & lrow).Offset(1, 0)
Set rng = rng.Copy
Worksheets("Sheet2").Activate
Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
'Fourth
Worksheets("Sheet1").Activate
lrow = ActiveSheet.Cells(Rows.Count, "M").End(xlUp).Row
Set rng = sh.UsedRange.Range("M3:O" & lrow)
Set rng = rng.Copy
Worksheets("Sheet2").Activate
Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
End Sub