В этой статье блога мы рассмотрим различные методы Excel VBA для копирования и вставки данных после последней строки на листе. Вы найдете примеры кода для каждого метода, что позволит вам выбрать тот, который лучше всего соответствует вашим конкретным требованиям. Независимо от того, являетесь ли вы новичком или опытным разработчиком VBA, это руководство предоставит вам множество вариантов эффективной обработки данных в Excel.
Метод 1: использование свойства Range.End
Пример кода:
Sub CopyPaste_LastRow_Method1()
Dim sourceSheet As Worksheet
Dim targetSheet As Worksheet
Dim lastRow As Long
' Set the source and target sheets
Set sourceSheet = ThisWorkbook.Worksheets("SourceSheet")
Set targetSheet = ThisWorkbook.Worksheets("TargetSheet")
' Determine the last row in the target sheet
lastRow = targetSheet.Cells(targetSheet.Rows.Count, "A").End(xlUp).Row
' Copy and paste the data from the source sheet to the target sheet
sourceSheet.Range("A1:B10").Copy targetSheet.Cells(lastRow + 1, "A")
End Sub
Метод 2: использование метода Find
Пример кода:
Sub CopyPaste_LastRow_Method2()
Dim sourceSheet As Worksheet
Dim targetSheet As Worksheet
Dim lastRow As Range
' Set the source and target sheets
Set sourceSheet = ThisWorkbook.Worksheets("SourceSheet")
Set targetSheet = ThisWorkbook.Worksheets("TargetSheet")
' Find the last non-empty cell in column A of the target sheet
Set lastRow = targetSheet.Columns("A:A").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
' Copy and paste the data from the source sheet to the target sheet
sourceSheet.Range("A1:B10").Copy targetSheet.Cells(lastRow.Row + 1, "A")
End Sub
Метод 3. Использование свойства UsedRange
Пример кода:
Sub CopyPaste_LastRow_Method3()
Dim sourceSheet As Worksheet
Dim targetSheet As Worksheet
Dim lastRow As Long
' Set the source and target sheets
Set sourceSheet = ThisWorkbook.Worksheets("SourceSheet")
Set targetSheet = ThisWorkbook.Worksheets("TargetSheet")
' Determine the last row in the target sheet using the UsedRange property
lastRow = targetSheet.UsedRange.Rows.Count + targetSheet.UsedRange.Row - 1
' Copy and paste the data from the source sheet to the target sheet
sourceSheet.Range("A1:B10").Copy targetSheet.Cells(lastRow + 1, "A")
End Sub
Метод 4: использование ListObjects (таблицы Excel)
Пример кода:
Sub CopyPaste_LastRow_Method4()
Dim sourceSheet As Worksheet
Dim targetSheet As Worksheet
Dim lastRow As Long
Dim targetTable As ListObject
' Set the source and target sheets
Set sourceSheet = ThisWorkbook.Worksheets("SourceSheet")
Set targetSheet = ThisWorkbook.Worksheets("TargetSheet")
' Set the target table (Excel Table)
Set targetTable = targetSheet.ListObjects("Table1")
' Determine the last row in the target table
lastRow = targetTable.Range.Rows.Count + targetTable.Range.Row - 1
' Copy and paste the data from the source sheet to the target table
sourceSheet.Range("A1:B10").Copy targetTable.DataBodyRange.Cells(lastRow + 1, 1)
End Sub
В этой статье мы рассмотрели несколько методов копирования и вставки данных после последней строки в Excel VBA. Каждый метод предлагает свой подход для достижения одного и того же результата. Используя эти примеры кода, вы можете эффективно манипулировать данными в книгах Excel и автоматизировать повторяющиеся задачи. Не стесняйтесь экспериментировать с этими методами и выберите тот, который лучше всего соответствует вашим конкретным потребностям.