Sao chép một cột hoặc các cột vào trang cơ sở dữ liệu bằng VBA trong Microsoft Excel
-
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