Скопируйте столбец или столбцы в базе данных листа с помощью VBA в Microsoft Excel
-
Примеры кодов будут скопированы на лист базы данных с именем 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