Thực hành Cut- Copy - Paste các ô Excel bằng VBA
Trong bài tập này chúng ta sẽ thực hành với các hàm Cut / Copy và Paste trong VBA bằng cách tạo ra các Macro, cùng với đó là phân tích sự khác nhau giữa các hàm đó.
Đề bài: Hãy đưa ra các ví dụ về các trường hợp khác nhau của các hàm Cut / Copy và Paste.
1. Copy (Cut) và Paste một ô Excel
Trong VBA, để copy hoặc cut một ô Excel thì ta thực hiện như trong ví dụ dưới đây.
Sub Paste_OneCell() 'Copy và Paste một Cell Range("A1").Copy Range("B1") 'Cut và Paste một Cell Range("A1").Cut Range("B1") End Sub
2. Copy Selection
Nếu bạn muốn copy một vùng chọn (selection) đang active thì sử dụng đoạn code sau.
Bài viết này được đăng tại [free tuts .net]
Sub CopySelection() 'Paste vao mot range Selection.Copy Range("b1") 'Offset Paste (vi tri nhay xuong 2 o va qua 1 phai 1 o Selection.Copy Selection.Offset(2, 1).Paste Application.CutCopyMode = False End Sub
3. Copy (Cut) và Paste một Range
Trong ví dụ dưới đây mình đã copy và cut dãy ô từ A1:A3 đến dãy ô B1:B3.
Sub Paste_Range() 'Copy Range("A1:A3").Copy Range("B1:B3") 'Cut Range("A1:A3").Cut Range("B1:B3") End Sub
4. Copy (Cut) và Paste một Column
Ví dụ dưới đây mình copy column A sang column B.
Sub PasteOneColumn() 'Copy Range("A:A").Copy Range("B:B") 'Cut Range("A:A").Cut Range("B:B") End Sub
5. Copy (Cut) và Paste một Row
Ví dụ dưới đây mình copy Row 1 sang Row 2.
Sub Paste_OneRow() 'Copy Range("1:1").Copy Range("2:2") 'Cut Range("1:1").Cut Range("2:2") End Sub
6. Copy (Cut) và Paste qua sheet khác
Ta chỉ cần kết hợp đối tượng Workbooks và Worksheets để chỉ định rõ tên sheet cần lấy.
Sub Paste_Other_Sheet_or_Book() 'Cut / Copy / Paste qua worksheet khác Worksheets("sheet1").Range("A1").Copy Worksheets("sheet2").Range("B1") 'Copy Worksheets("sheet1").Range("A1").Cut Worksheets("sheet2").Range("B1") 'Cut 'Cut / Copy / Paste qua workbook khác Workbooks("book1.xlsm").Worksheets("sheet1").Range("A1").Copy _ Workbooks("book2.xlsm").Worksheets("sheet1").Range("B1") 'Copy Workbooks("book1.xlsm").Worksheets("sheet1").Range("A1").Cut _ Workbooks("book2.xlsm").Worksheets("sheet1").Range("B1") 'Cut Application.CutCopyMode = False End Sub
7. Hiểu về giá trị khi copy
Khi bạn sử dụng chuột để thao tác copy trên Excel thì sẽ sao chép cả giá trị, công thức và những format của cell đó. Và các hàm trên cũng vậy, nó sẽ copy toàn bộ giá trị và những gì bạn đã thiết lập trên ô đó.
Vì vậy, để copy giá trị thôi thì ta nên sử dụng thuộc tính value.
Sub ValuePaste() 'Set Value của các cell cùng sheet Range("B1").value = Range("A1").value Range("B1:B3").value = Range("A1:A3").value 'Set Values giữa các cell trên các sheet Worksheets("sheet2").range("A1").value = Worksheets("sheet1").range("A1").value 'Set Values giữa các cell trên các workbook Workbooks("book2.xlsm").Worksheets("sheet1").range("A1").value = _ Workbooks("book1.xlsm").Worksheets("sheet1").range("A1").value Application.CutCopyMode = False End Sub
Trên là một số ví dụ về cách sử dụng ba phương thức Cut - Copy và Paste trong VBA. Hy vọng những ví dụ này sẽ giúp bạn hiểu bài hơn.
Danh sách bài tập
- Thiết lập giá trị cho một ô Excel bằng VBA
- Thiết lập công thức cho các ô Excel bằng VBA
- Viết thủ công thêm sự kiện click vào một Button VBA
- Thực hành Cut- Copy - Paste các ô Excel bằng VBA
- Cách sử dụng thuộc tính Select VBA để chọn phạm vi các ô Excel
- Sử dụng Offset trong VBA để chọn một ô hoặc dãy ô Excel
- Thuộc tính Resize Range trong VBA - thay đổi kích thước của phạm vi