• Примеры кодов будут скопированы на лист базы данных с именем Sheet2.

  • Каждый раз, когда вы запускаете одну из подпрограмм, ячейки будут размещаться под последней строкой с данными или после последнего столбца с данными на листе 2.

  • Для каждого примера есть макрос, который выполняет обычное копирование, и макрос, который только копирует значения.

  • В примерах подпрограммы используются функции, указанные ниже (макросы не будут работать без функций).

Помните, что в Excel всего 256 столбцов

Sub CopyColumn()

Dim sourceRange As Range

Dim destrange As Range

Dim Lc As Integer

Lc = Lastcol(Sheets("Sheet2")) + 1

Set sourceRange = Sheets("Sheet1").Columns("A:A")

Set destrange = Sheets("Sheet2").Columns(Lc)

sourceRange.Copy destrange

End Sub

Sub CopyColumnValues()

Dim sourceRange As Range

Dim destrange As Range

Dim Lc As Integer

Lc = Lastcol(Sheets("Sheet2")) + 1

Set sourceRange = Sheets("Sheet1").Columns("A:A")

Set destrange = Sheets("Sheet2").Columns(Lc). _

Resize(, sourceRange.Columns.Count)

destrange.Value = sourceRange.Value

End Sub

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