• Các mã ví dụ sẽ sao chép vào một trang cơ sở dữ liệu với tên là Sheet2.

  • Mỗi khi bạn chạy một trong các ô con, các ô sẽ được đặt bên dưới hàng cuối cùng có dữ liệu hoặc sau Cột cuối cùng có dữ liệu trong sheet2.

  • Đối với mỗi ví dụ, có một macro thực hiện sao chép bình thường và một macro chỉ Sao chép Giá trị.

  • Các đăng ký Ví dụ sử dụng các chức năng bên dưới (các macro sẽ không hoạt động nếu không có các chức năng).

Hãy nhớ chỉ có 256 cột trong Excel

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